Case 6:
Пустота

Вернувшись из отпуска, глава клана Смеющихся Обезьян обнаружил, что в храме царят беспорядок и паника. Платежная система, которую они только что усовершенствовали, каждому новому пользователю выбрасывала сообщение с NullPointerException. Рассерженные пользователи удаляли свои аккаунты в течение суток с момента регистрации.

С некоторым трудом аббат нашел причину проблемы. Она была в методе, который должен был возвращать список транзакций пользователя. Если транзакций не было, возвращался ноль, а не пустой список.

- Приведите мне монаха, который написал этот метод, - сказал он стражникам. - А также монаха, чей код вызывает его.

Первый монах, старший из двух, объявил, что вина должна быть возложена на голову другого монаха: "Мой java-метод работал превосходно. Я не виноват, что он не сделал проверку на ноль". Другой монах смущенно склонил голову и ничего не сказал.

Аббат хлопнул в ладоши, и на пол напротив провинившихся монахов поставили по эбонитовой урне.
- Внутри листочки бумаги с вашими наказаниями. Каждый день вы должны извлекать первый листок, которого коснется ваша рука, и выполнять предписания, на нем начертанные. И так до тех пор, пока урна не опустеет.

Младший монах подошел к урне первым. Рука его не дошла до середины, когда послышался шорох бумаги. Прочтя задание, он поклонился и покинул комнату.

Старший монах опустил руку глубоко в свою урну, пока пальцы его не коснулись холодного дна.
- В этой урне нет листков бумаги, - сказал монах, в уголках его губ играла улыбка.

- Как нет ни рыбы, ни десятка гор, - ответил аббат.

Старший монах закричал от боли. Урна покатилась и раскололась. Среди осколков пробежал удирающий скорпион.

Аббат смерил взглядом умирающего монаха: "Не всякое отсутствие означает пустоту".

thecodelesscode.com/case/6