Update of /var/cvs/src/org/mmbase/framework/basic
In directory james.mmbase.org:/tmp/cvs-serv4671

Modified Files:
        BasicUrlConverter.java 
Log Message:
The code depended on request.getParameterMap, but this is the request as was 
decorated by MMBaseUrlConverter, but it was meant to copy the parameters as 
were on the original request (testcases of test/urls block were failing)>


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework/basic


Index: BasicUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/BasicUrlConverter.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- BasicUrlConverter.java      21 Mar 2008 10:39:23 -0000      1.11
+++ BasicUrlConverter.java      21 Mar 2008 12:05:28 -0000      1.12
@@ -13,6 +13,7 @@
 import org.mmbase.util.*;
 import java.io.*;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
 import org.mmbase.util.functions.*;
 import org.mmbase.util.transformers.Url;
 import org.mmbase.util.transformers.CharTransformer;
@@ -25,7 +26,7 @@
  *
  *
  * @author Michiel Meeuwissen
- * @version $Id: BasicUrlConverter.java,v 1.11 2008/03/21 10:39:23 michiel Exp 
$
+ * @version $Id: BasicUrlConverter.java,v 1.12 2008/03/21 12:05:28 michiel Exp 
$
  * @since MMBase-1.9
  */
 public final class BasicUrlConverter implements UrlConverter {
@@ -111,10 +112,22 @@
     public Parameter[] getParameterDefinition() {
         return new Parameter[] {Parameter.REQUEST};
     }
+
+    /**
+     * Entirely unwraps the request. So, this returns the original request 
object, without implicit
+     * additions by e.g. the Filter.
+     */
+    public static HttpServletRequest getUserRequest(HttpServletRequest req) {
+        while (req instanceof HttpServletRequestWrapper) {
+            req = (HttpServletRequest) ((HttpServletRequestWrapper) 
req).getRequest();
+        }
+        return req;
+    }
+
     protected String getUrl(String path,
                             Map<String, Object> parameters,
                             Parameters frameworkParameters, boolean 
escapeAmps, boolean action) {
-        HttpServletRequest request = 
frameworkParameters.get(Parameter.REQUEST);
+        HttpServletRequest request = 
getUserRequest(frameworkParameters.get(Parameter.REQUEST));
         State state = State.getState(request);
         Map<String, Object> map = new TreeMap<String, Object>();
         if (log.isDebugEnabled()) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to