SavedRequest is the only one using T_STR instead T_BYTES.
authorjfclere <jfclere@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 25 Mar 2008 17:02:02 +0000 (17:02 +0000)
committerjfclere <jfclere@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 25 Mar 2008 17:02:02 +0000 (17:02 +0000)
converting to T_BYTES allows to use utf8 encoded querystring with parameters and form based authentication.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@640897 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/tomcat/util/http/Parameters.java

index 1d70394..aeceb40 100644 (file)
@@ -505,17 +505,12 @@ public final class Parameters extends MultiMap {
     public void processParameters( MessageBytes data, String encoding ) {
         if( data==null || data.isNull() || data.getLength() <= 0 ) return;
 
-        if( data.getType() == MessageBytes.T_BYTES ) {
-            ByteChunk bc=data.getByteChunk();
-            processParameters( bc.getBytes(), bc.getOffset(),
-                               bc.getLength(), encoding);
-        } else {
-            if (data.getType()!= MessageBytes.T_CHARS ) 
-                data.toChars();
-            CharChunk cc=data.getCharChunk();
-            processParameters( cc.getChars(), cc.getOffset(),
-                               cc.getLength());
+        if( data.getType() != MessageBytes.T_BYTES ) {
+            data.toBytes();
         }
+        ByteChunk bc=data.getByteChunk();
+        processParameters( bc.getBytes(), bc.getOffset(),
+                           bc.getLength(), encoding);
     }
 
     /** Debug purpose