If a JSP throws an UnavailableException twice, an IllegalStateException occurs. first access: JSP throws UnavailableException. second access: If the JSP throws an UnavailableException again then an IllegalStateException occurs and Tomcat returns status code:500 to the client. The problem is not that the IllegalStateException occurs. The problem is that the JSP can be called even though it cannot be used.
Created attachment 19924 [details] An IllegalStateException does not occurred with this patch. An IllegalStateException does not occurred with this patch.
I don't see an ISE with the latest source from svn. If you still see the ISE with the latest svn source, please re-open this issue and attach your JSP that shows the ISE.
Created attachment 19974 [details] reappearance jsp reappearance jsp
I see the ISE with the latest svn source. It reappears in the following procedure. first request: /test.jsp?exp=true second request: /test.jsp?exp=true [JSP] <%@ page contentType="text/plain" %> <% String exp = request.getParameter("exp"); if("true".equalsIgnoreCase(exp)) { throw new UnavailableException("error!!!"); } System.out.println("done!"); %> done!
This has been fixed in svn and will be included in 5.5.24 onwards and 6.0.12 onwards. Thanks for the report and the test case.