Почему ExceptionMapper for Exception возвращает 204, если toResponse возвращает null - PullRequest
0 голосов
/ 25 сентября 2018

Используя Thorntail версии 2.2.0.Final и RESTEasy версии 3.0.24.Final, мы пытаемся создать универсальный ExceptionMapper, который бы возвращал 500 для всех необработанных исключений, то есть для любого экземпляра Exception, такого какNullPointerException, ArrayOutOfBoundsExecption и т. Д.

Нам удалось сделать это довольно легко, но мы столкнулись с действительно проблемной проблемой;создавая ExceptionMapper для Exception, он также вызывается при работе с WebApplicationException и RESTEasy Failure.

Поскольку поведение по умолчанию для этих двух типов исключений является правильным в нашем случаемы подумали, что просто возвращая Response (то есть null) для них в методе toResponse, код продолжит обрабатывать их с поведением по умолчанию.

Однако, когда мы протестировалиполучил 204, когда ожидаемый ответ был 401 (NotAuthorizedException).

Я посмотрел на код, и handleException метод , похоже, ведет себя так, как мы и думали;однако, глядя на метод executeExceptionMapper , мы были озадачены происходящим поведением, поскольку, если метод toResponse возвращает null, возвращается 204, а метод executeExactExceptionMapper не ведет себя таким образом, он просто позволяет исключению перейти к следующему обработчику;почему разница?

...