I am including one jsp in another jsp, there are different behaviors for 2
tomcat versions as below

1. case in 7.0.37 - setCommitted(true) was called and thus in tiles code
(pasted below), it includes the jsp and works fine

     public class TilesRequestProcessor extends RequestProcessor
        protected void doForward( String uri, HttpServletRequest
                request, HttpServletResponse response) throws IOException,
ServletException {
             if (response.isCommitted()) {
                       this.doInclude(uri, request, response);
            } else {
                      super.doForward(uri, request, response); }
            }

2. case in 7.0.39 - setCommitted() was not being called and thus
isCommitted - default is false, and in this case it tries to forward and
thus call super.doForward(uri, request, response) as per above code. Now as
response is already committed but due to this flag value being false, it
tries to flush again giving issue of flushing of already flushed response.
and thus giving IOException: Stream closed issue.
so the problem is, if response is already committed why
org.apache.coyote.Response.isCommitted not being set to true ?


Thanks
Prashant Kadam

-- 
~ Prashant Kadam

Reply via email to