You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2003/01/28 01:12:32 UTC

DO NOT REPLY [Bug 16479] New: - unwraps ServletResponseWrapper

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=16479>.
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=16479

<jsp:forward> unwraps ServletResponseWrapper

           Summary: <jsp:forward> unwraps ServletResponseWrapper
           Product: Tomcat 4
           Version: 4.0.4 Final
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Jasper
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: ruvinsky@yahoo.com


class org.apache.jasper.runtime.PageContextImpl has a forward() method that 
inappropriately unwrapps the response wrapper if one exists.  See the code 
below to see the suggested fix.  The current behavior appears to violate the 
Servlet Specification as the dispatched response object is NOT same one for the 
current page context.  This is verified to be a problem in Tomcat 4.0.5, and 
appears to have the same problem in Tomcat 4.1.12.  However, I have not 
verified if this was fixed in 4.1.18.  The suggest fix is below:

public void forward(String relativeUrlPath)
throws ServletException, IOException
{
:
:
    /** @todo - REMOVE THE FOLLOW WHILE LOOP */
    // Make sure that the response object is not the wrapper for include
    while (response instanceof HttpServletResponseWrapper)
        response = ((HttpServletResponseWrapper)response).getResponse();
:
:
}

Thanks.

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