billbarker 2004/09/29 23:02:39 Modified: src/facade22/org/apache/tomcat/facade RequestDispatcherImpl.java Log: Set the correct query-string on forwards. The parameters are the sum of the forward URI and the request URI, but the query-string is the one from the forward URI according to the spec. This still needs some work to handle the post-request clean-up. Fix for Bug #31474 Reported By: Marc Daniels [EMAIL PROTECTED] Revision Changes Path 1.29 +7 -5 jakarta-tomcat/src/facade22/org/apache/tomcat/facade/RequestDispatcherImpl.java Index: RequestDispatcherImpl.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/RequestDispatcherImpl.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- RequestDispatcherImpl.java 23 Feb 2004 06:06:13 -0000 1.28 +++ RequestDispatcherImpl.java 30 Sep 2004 06:02:39 -0000 1.29 @@ -193,7 +193,7 @@ //realRequest.query().recycle(); realRequest.servletPath().recycle(); realRequest.pathInfo().recycle(); - realRequest.setChild(null); + realRequest.setChild(null); // merge query string as specified in specs - before, it may affect // the way the request is handled by special interceptors @@ -201,11 +201,11 @@ // Process existing parameters, if not already done so // ( otherwise we'll process some twice ) realRequest.parameters().handleQueryParameters(); - // Set the query string - the sum of the new one and old one. + // Set the query string - the new one. String oldQS=realRequest.queryString().toString(); - String newQS=(oldQS==null ) ? queryString : queryString + "&" + - oldQS; - realRequest.queryString().setString(newQS); + // String newQS=(oldQS==null ) ? queryString : queryString + "&" + + // oldQS; + realRequest.queryString().setString(queryString); // Process the additional parsm. We don't know if the old // params were processed ( so we need to make sure they are, @@ -215,6 +215,8 @@ child.processParameters( queryString ); //realRequest.parameters().processParameters( queryString ); + } else { + realRequest.queryString().recycle(); } // run the new request through the context manager
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]