On 16.11.2011 12:41, Willem Fibbe wrote:
Hi,

With the HEAD revision of tc7.0.x/trunk I get that spaces are translated into + 
symbols.

After binary searching which SVN rev in tomcat introduced this error, I found 
the following:
- 1189876 correctly URL-decodes the + sign into a space
- 1189899 doesn't URL-decode the + sign into a space anymore, which results in 
many + characters on the server
   (and in our DB).

Looking into the SVN rev and looking into java.net.URL{Encoder,Decoder} I saw
that one case was left out in parsing parameters, so I tried the following
patch on the HEAD rev (r1202638):

Index: java/org/apache/tomcat/util/http/Parameters.java
===================================================================
--- java/org/apache/tomcat/util/http/Parameters.java    (revision 1202638)
+++ java/org/apache/tomcat/util/http/Parameters.java    (working copy)
@@ -284,6 +284,7 @@
                          pos++;
                          break;
                      case '%':
+                    case '+':
                          // Decoding required
                          if (parsingName) {
                              decodeName = true;

This solves my issue and the + signs are now correctly URL-decoded into spaces 
again.

I hope this patch helps.

Thanks for posting your observation and analyzing the problem. We just discovered the same 2 hours before your post while voting on 6.0.34, which contains a similar patch.

Regards,

Rainer


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to