DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5413>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5413

JspWriterImpl causes, under certain circumstances, an IllegalStateException when 
releasing the PageContext

           Summary: JspWriterImpl causes, under certain circumstances, an
                    IllegalStateException when releasing the PageContext
           Product: Tomcat 4
           Version: Nightly Build
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Jasper
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I have two JSP pages testing scope of beans.

Page 1:
  Creates a bean instance and forwards the request to another
  page (Page 2) to make a scope validity check.
Page 2:
  Consists of only scriplets, declarations, and JSP-comments.
  In either case, if the test fails or passes, a call is 
  made to response.sendError(int,String).

The problem here seems to be since sendError commits the response,
the call to initOut will fail when calling response.getWriter();
Looking at the code for initOut:

protected void initOut() throws IOException {
    if (out == null) {
        out = response.getWriter();
        //System.out.println("JspWriterImpl: initOut: " + this + " " +out);
    }
}

It would seem to make sense to make sure that the response isn't already
committed as well before making the call to getWriter.

NOTE:  This setup that I had, previously worked.  I don't think I'm doing
anything incorrectly, but I could be wrong.  

Stacktrace:
*******************************************************************
StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException
    at
org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:159)
    at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:166)
    at
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:158)
    at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:205)
    at
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:176)
    at
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:198)
    at
org.apache.jasper.runtime.JspFactoryImpl.access$0(JspFactoryImpl.java:197)
    at
org.apache.jasper.runtime.JspFactoryImpl$PrivilegedReleasePageContext.run(JspFactoryImpl.java:132)
    at java.security.AccessController.doPrivileged(Native Method)
    at
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:191)
    at
org.apache.jsp.ScopeResultXML$jsp._jspService(ScopeResultXML$jsp.java:137)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
    at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:431)
    at
org.apache.catalina.core.ApplicationDispatcher.access$0(ApplicationDispatcher.java:359)
    at
org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward.run(ApplicationDispatcher.java:130)
    at java.security.AccessController.doPrivileged(Native Method)
    at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:347)
    at
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:413)
    at
org.apache.jsp.positivePageScopedObjectXML$jsp._jspService(positivePageScopedObjectXML$jsp.java:88)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at
org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:197)
    at
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
    at java.security.AccessController.doPrivileged(Native Method)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
    at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
.
.
.
**********************************************************************

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to