You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/09/23 13:49:34 UTC
svn commit: r698147 -
/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/parameters/Util.java
Author: fmeschbe
Date: Tue Sep 23 04:49:34 2008
New Revision: 698147
URL: http://svn.apache.org/viewvc?rev=698147&view=rev
Log:
SLING-672 Correctly Re-Encode parameter names not using the URLDecoder
Modified:
incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/parameters/Util.java
Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/parameters/Util.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/parameters/Util.java?rev=698147&r1=698146&r2=698147&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/parameters/Util.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/parameters/Util.java Tue Sep 23 04:49:34 2008
@@ -21,7 +21,6 @@
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
@@ -112,15 +111,12 @@
param.setEncoding(formEncoding);
// prepare the parameter for renaming
- try {
- if (parName == null) {
- parName = paramEntry.getKey();
- String name = URLDecoder.decode(parName,
- formEncoding);
- renameMap.put(paramEntry.getKey(), name);
+ if (parName == null) {
+ parName = paramEntry.getKey();
+ String name = reencode(parName, formEncoding);
+ if (!parName.equals(name)) {
+ renameMap.put(parName, name);
}
- } catch (UnsupportedEncodingException uee) {
- // unexpected, as the encoding has been checked !
}
}
}
@@ -134,4 +130,18 @@
}
}
}
+
+ private static String reencode(String parName, String encoding) {
+ // re-encode the parameter to the encoding
+ if (!ENCODING_DIRECT.equals(encoding)) {
+ try {
+ return new String(parName.getBytes(ENCODING_DIRECT), encoding);
+ } catch (UnsupportedEncodingException uee) {
+ // unexpected, as the encoding is assumed to have been checked !
+ }
+ }
+
+ // otherwise just return the name unmodified
+ return parName;
+ }
}