Case 6:
Пустота
Вернувшись из отпуска, глава клана Смеющихся Обезьян обнаружил, что в храме царят беспорядок и паника. Платежная система, которую они только что усовершенствовали, каждому новому пользователю выбрасывала сообщение с NullPointerException. Рассерженные пользователи удаляли свои аккаунты в течение суток с момента регистрации.
С некоторым трудом аббат нашел причину проблемы. Она была в методе, который должен был возвращать список транзакций пользователя. Если транзакций не было, возвращался ноль, а не пустой список.
- Приведите мне монаха, который написал этот метод, - сказал он стражникам. - А также монаха, чей код вызывает его.
Первый монах, старший из двух, объявил, что вина должна быть возложена на голову другого монаха: "Мой java-метод работал превосходно. Я не виноват, что он не сделал проверку на ноль". Другой монах смущенно склонил голову и ничего не сказал.
Аббат хлопнул в ладоши, и на пол напротив провинившихся монахов поставили по эбонитовой урне.
- Внутри листочки бумаги с вашими наказаниями. Каждый день вы должны извлекать первый листок, которого коснется ваша рука, и выполнять предписания, на нем начертанные. И так до тех пор, пока урна не опустеет.
Младший монах подошел к урне первым. Рука его не дошла до середины, когда послышался шорох бумаги. Прочтя задание, он поклонился и покинул комнату.
Старший монах опустил руку глубоко в свою урну, пока пальцы его не коснулись холодного дна.
- В этой урне нет листков бумаги, - сказал монах, в уголках его губ играла улыбка.
- Как нет ни рыбы, ни десятка гор, - ответил аббат.
Старший монах закричал от боли. Урна покатилась и раскололась. Среди осколков пробежал удирающий скорпион.
Аббат смерил взглядом умирающего монаха: "Не всякое отсутствие означает пустоту".
thecodelesscode.com/case/6