You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Robert Winningham <Ro...@rayberndtson.com> on 2002/01/28 15:32:30 UTC

IllegalStateException

I am experiencing a problem in Tomcat v4.0.1 that did not exist in
v3.2.x.  Last week, I ported a web application from v3.2.3 to v4.0.1,
and I noticed that the logs grew very rapidly.  It seemed that every
time a user would access a .jsp page, an IllegalStateException would be
thrown.  I narrowed the problem down to very simple test case which is
listed below.  To make a long story short, one .jsp page forward the
request and response to another .jsp page which outputs html.  This
combination is causing the error.  I am curious why Tomcat is now
behaving this way, as it did not do so in previous releases.  Is this
behavior by design or am I misinterpretting the use of forwarding?

Thank you for any help that anyone may provide
//r

Here is a very simple test case:

<!-- First page forwards to a second -->
<%@ page %>

    <%
 
config.getServletContext().getRequestDispatcher("/test.jsp").forward(req
uest,response);
    %>

<!-- Second page just outputs HTML -->

<%@ page %>
<HTML>
  <HEAD>
    <TITLE>
      Test
    </TITLE>
  </HEAD>
  <BODY>
    <H1>Test</H1>
  </BODY>
</HTML>

When I access the first page, I recieve the following error:

2002-01-25 10:53:02 jsp: init
2002-01-25 10:53:02 StandardWrapperValve[jsp]: Servlet.service() for
servlet jsp threw exception
java.lang.IllegalStateException
        at org.apache.catalina.connector.ResponseFacade.getWriter
(ResponseFacade.java:159) (pc 11)
        at org.apache.jasper.runtime.JspWriterImpl.initOut
(JspWriterImpl.java:166) (pc 12)
        at org.apache.jasper.runtime.JspWriterImpl.flushBuffer
(JspWriterImpl.java:158) (pc 39)
        at org.apache.jasper.runtime.JspWriterImpl.flush
(JspWriterImpl.java:205) (pc 8)
        at org.apache.jasper.runtime.PageContextImpl.release
(PageContextImpl.java:176) (pc 24)
        at
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext
(JspFactoryImpl.java:198) (pc 1)
        at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext
(JspFactoryImpl.java:193) (pc 32)
        at org.apache.jsp.testforward$jsp._jspService
(testforward$jsp.java:75) (pc 213)
        at org.apache.jasper.runtime.HttpJspBase.service
(HttpJspBase.java:107) (pc 3)
        at
javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest,java
x.servlet.ServletResponse) (HttpServlet.java:853) (pc 30)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service
(JspServlet.java:199) (pc 33)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:382) (pc 60)
        at org.apache.jasper.servlet.JspServlet.service
(JspServlet.java:474) (pc 326)
        at
javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest,java
x.servlet.ServletResponse) (HttpServlet.java:853) (pc 30)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247) (pc 248)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:193) (pc 98)
        at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:243) (pc 352)
        at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:566) (pc 87)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:472) (pc 18)
        at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:943) (pc 6)
        at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:201) (pc 261)
        at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:566) (pc 87)
        at org.apache.catalina.valves.CertificatesValve.invoke
(CertificatesValve.java:246) (pc 48)
        at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:564) (pc 55)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:472) (pc 18)
        at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:943) (pc 6)
        at org.apache.catalina.core.StandardContext.invoke
(StandardContext.java:2344) (pc 26)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:164) (pc 99)
        at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:566) (pc 87)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:170) (pc 3)
        at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:564) (pc 55)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:170) (pc 3)
        at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:564) (pc 55)
        at org.apache.catalina.valves.AccessLogValve.invoke
(AccessLogValve.java:462) (pc 3)
        at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:564) (pc 55)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:472) (pc 18)
        at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:943) (pc 6)
        at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:163) (pc 92)
        at org.apache.catalina.core.StandardPipeline.invokeNext
(StandardPipeline.java:566) (pc 87)
        at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:472) (pc 18)
        at org.apache.catalina.core.ContainerBase.invoke
(ContainerBase.java:943) (pc 6)
        at org.apache.catalina.connector.http.HttpProcessor.process
(HttpProcessor.java:1011) (pc 363)
        at org.apache.catalina.connector.http.HttpProcessor.run
(HttpProcessor.java:1106) (pc 14)
        at java.lang.Thread.run          (Thread.java:484)       (pc 11)


Here's a code snippet where the error is occurring...

} catch (Throwable t) {
    if (out != null && out.getBufferSize() != 0)
        out.clearBuffer();
    if (pageContext != null) pageContext.handlePageException(t);
} finally {
>>> Line 75    if (_jspxFactory != null)
_jspxFactory.releasePageContext(pageContext); <<<
}



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: IllegalStateException

Posted by Jun Inamori <ju...@oop-reserch.com>.
Hi Robert,

> Here is a very simple test case:
> 
> <!-- First page forwards to a second -->
> <%@ page %>
> 
>     <%
>  
> config.getServletContext().
> getRequestDispatcher("/test.jsp").
> forward(request,response);
>     %>

Please try:

 config.getServletContext().
 getRequestDispatcher("/test.jsp").
 forward(request,response);
 return;

Best regards,
-- 

Happy Java programming!

Jun Inamori
OOP-Reserch
E-mail: jun@oop-reserch.com
URL:    http://www.oop-reserch.com/

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>