У jsonrpc4j v1.5.0 (и позже) отсутствует тело ответа для ошибок
Во время нашего обычного обновления зависимостей я обновил jsonrpc4j с 1.4.6 до 1.5.3, но это привело к тому, что тело ответа исчезло из-за любых ошибок. Это произошло и в 1.5.0.
Я немного покопался в исходном коде, сравнил следы стека версий и обнаружил несколько отличий:
Вызов JsonRpcServer.handleRequest0 появился в 1.5.0
Журналы нашего сервера показывают, что JsonRpcServer генерирует исключение RunTimeException (оборачивая реальное исключение), поскольку переменная rethrowExceptions имеет значение true. Тем не менее, этот журнал не появляется для v1.4.6.
Для rethrowExceptions установлено значение true в нашей конфигурации AutoJsonRpcServiceImplExporter. Я установил значение false и получил разные результаты (статус и тело) для обеих версий:
rethrowExceptions | v1.4.6 | v1.5.0 true | 400 with body | 400 w/o body false | 500 with body | 200 with body
Я хотел бы разобраться в этом и понять, почему тело ответа пропало.
Любая помощь приветствуется.