Hi,

When we upgrade to resin3.1.4 from resin 2, we got the following error 
when we access a page:

java.lang.IllegalStateException: forward() not allowed after buffer has 
committed.
[14:20:59.218]     at 
com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:141)
[14:20:59.218]     at 
com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:108)
[14:20:59.218]     at 
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
[14:20:59.218]     at 
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
[14:20:59.218]     at 
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
[14:20:59.218]     at 
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
[14:20:59.218]     at 
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
[14:20:59.218]     at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:114)
[14:20:59.218]     at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
[14:20:59.218]     at 
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
[14:20:59.218]     at 
com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:97)
[14:20:59.218]     at 
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
[14:20:59.218]     at 
com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:491)
[14:20:59.218]     at 
com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:355)
[14:20:59.218]     at 
com.caucho.jsp.PageContextImpl.include(PageContextImpl.java:1002)
[14:20:59.218]     at 
_jsp._aaa._bbb._ccc__jsp._jspService(_ddd__jsp.java:128)                  
(  <===== corresponding to ddd.jsp )
......

In ddd.jsp, the line is

    <jsp:include page="/eee.do"></jsp:include>


I debugged with  resin 3.1.4 source code, and found that the exception 
is thrown from the following lines in the class RequestDispatcherImpl in 
package com.caucho.server.webapp:

   if (res.isCommitted() && method == null) {
      IllegalStateException exn;
      exn = new IllegalStateException("forward() not allowed after 
buffer has committed.");

      if (cauchoRes == null || ! cauchoRes.hasError()) {
    if (cauchoRes != null)
      cauchoRes.setHasError(true);
        throw exn;
      }
     
      _webApp.log(exn.getMessage(), exn);
    }

One interesting thing is that when the jsp page is accessed for the 
first time, it is forwarded to the error page with such exception. 
However, the jsp page is correctly rendered in following  requests even 
though the same exception is generated.

Does anyone know the solution?

Thanks.


 









_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to