Summary: | RequestDispatcher forward not handling a ServletRequestWrapper correctly when updating forward request params | ||
---|---|---|---|
Product: | Tomcat 5 | Reporter: | Carlin Rogers <carlin.rogers> |
Component: | Servlet & JSP API | Assignee: | Tomcat Developers Mailing List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | 5.0.28 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Windows XP |
Description
Carlin Rogers
2005-06-08 17:34:20 UTC
I was able to reproduce this same bug on Tomcat 5.5.9 as well. The javax.servlet.forward.request_uri attribute is definitely NOT being set correctly when forwarding with a wrapped request I'm guessing that the root cause is the same, but it should also be noted that the javax.servlet.forward.servlet_path attribute is not being set correctly under these conditions either. This is now fixed in the CVS head, and will appear in 5.5.10. It currently seems unlikely that there will be another release on the 5.0.x line, so the 5.5.x line is all that there is. It looks like there is a 5.0.30 Tomcat version in the works, will this fix be included in that version as well? Forgive my poor English, it is not my native language. I found following bugs since 5.5.x, may be early. 5.5.9, 5.5.10 have same bugs, too. org.apache.catalina.core.ApplicationDispatcher.doInclude //HTTP named dispatcher include //HTTP path based include invoke(outerRequest, outerResponse); // bug here --> invoke(wrequest, wresponse); // crect one org.apache.catalina.core.ApplicationDispatcher.processRequest //HTTP named dispatcher forward //HTTP path based forward invoke(outerRequest, response); // bug here --> invoke(wrequest, response); // crect 1) If you have n HttpServletRequestWrapper, then Original HttpServletRequest Dispatcher's HttpServletRequestWrapper <-- wrequest <-- suppose to invoke this one Your HttpServletRequestWrapper #1 Your HttpServletRequestWrapper #2 ... Your HttpServletRequestWrapper #n <-- outerRequest 2) If no HttpServletRequestWrapper, then Original HttpServletRequest Dispatcher's HttpServletRequestWrapper <-- wrequest==outerRequest <-- it works Topper Lu email: topper@tlk.com.tw Ehhh, ok, I see the light now ;) Forgive me for not being friendly, it is not my native behavior. Please do not reopen the report. |