Description
When a request is made directly to a JSP (not via a page flow) and the rendering of the JSP throws an exception, the PageFlowPageFilter will catch the exception and try to use the DefaultExceptionsHandler. However, the DefaultExceptionsHandler expects the request to be a PageFlowRequestWrapper and calls PageFlowRequestWrapper.get(). In this scenario, the request is not a PageFlowRequestWrapper so the get() method throws either an AssertException (when checking for the PageFlowRequestWrapper) or a ClassCastException when running without asserts.
Here's an example stack trace...
java.lang.ClassCastException: org.apache.coyote.tomcat5.CoyoteRequestFacade
at org.apache.beehive.netui.pageflow.internal.PageFlowRequestWrapper.get(PageFlowRequestWrapper.java:60)
at org.apache.beehive.netui.pageflow.internal.DefaultExceptionsHandler.handleException(DefaultExceptionsHandler.java:110)
at org.apache.beehive.netui.pageflow.FlowController.handleException(FlowController.java:272)
at org.apache.beehive.netui.pageflow.PageFlowPageFilter.handleException(PageFlowPageFilter.java:440)
at org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPageFilter.java:354)
at org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:251)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)