Hi,
I'm using embedded undertow with jastow for serving jsp pages.
I registered custom error page for handling all 500 errors, but exception
is not propagated to my custom 500.jsp page (javax.servlet.error.exception
request attribute is never set).
I debugged through undertow code and found that the problem is in
"ServletInitialHandler", "handleFirstRequest" method. When a servlet
throws exception, error page location is looked for only by exception type
and not by exception code as well, so the exception is never propagated to
my custom error page.
Is this a bug or a feature? The only workaround I have found is to register
my custom error page against JasperException.class, but I wouldn't want to
do this for all the possible exceptions my application could throw.
If it's a bug, than simple fix would be to look for error page by 500 error
code as well, like so:
String location =
servletContext.getDeployment().getErrorPages().getErrorLocation(t);
if (location == null) {
location =
servletContext.getDeployment().getErrorPages().getErrorLocation(500);
}
Regards,
Dragan