If an unmappable exception is passed to AsyncResponse.resume(Throwable), the stack trace is lost.
I believe this incorrect behavior was introduced by #1902, which adjusted ServerRuntime.Responder.process to log exceptions at a FINE level rather than SEVERE. I think that change was good for the synchronous case where the exception will ultimately be rethrown to the caller for logging by the application or servlet container. However, for the asynchronous case, ServerRuntime.AsyncResponder.resume swallows the exception rethrown from process (correctly), which means the stack trace is lost. I believe this flow should be adjusted so that unmappable exceptions passed to AsyncResponse.resume(Throwable) are again logged with a SEVERE level.
If an unmappable exception is passed to AsyncResponse.resume(Throwable), the stack trace is lost.
I believe this incorrect behavior was introduced by #1902, which adjusted ServerRuntime.Responder.process to log exceptions at a FINE level rather than SEVERE. I think that change was good for the synchronous case where the exception will ultimately be rethrown to the caller for logging by the application or servlet container. However, for the asynchronous case, ServerRuntime.AsyncResponder.resume swallows the exception rethrown from process (correctly), which means the stack trace is lost. I believe this flow should be adjusted so that unmappable exceptions passed to AsyncResponse.resume(Throwable) are again logged with a SEVERE level.
Affected Versions
[2.23.2]