You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2014/12/02 11:40:04 UTC

cxf git commit: [CXF-6122] Internally decoding a query plus character passed in the init URI to avoid double encoding it

Repository: cxf
Updated Branches:
  refs/heads/master 8ef743e87 -> fc64f1c05


[CXF-6122] Internally decoding a query plus character passed in the init URI to avoid double encoding it


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/fc64f1c0
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/fc64f1c0
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/fc64f1c0

Branch: refs/heads/master
Commit: fc64f1c05e34f402ef9d88ee54c2a3b193b64432
Parents: 8ef743e
Author: Sergey Beryozkin <sb...@talend.com>
Authored: Tue Dec 2 10:39:44 2014 +0000
Committer: Sergey Beryozkin <sb...@talend.com>
Committed: Tue Dec 2 10:39:44 2014 +0000

----------------------------------------------------------------------
 .../src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java | 2 +-
 .../src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java    | 5 ++++-
 .../test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/fc64f1c0/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
index 53ca8fe..84065b1 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
@@ -632,7 +632,7 @@ public class UriBuilderImpl extends UriBuilder implements Cloneable {
             }
             String rawQuery = uri.getRawQuery();
             if (rawQuery != null) {
-                query = JAXRSUtils.getStructuredParams(rawQuery, "&", false, false);
+                query = JAXRSUtils.getStructuredParams(rawQuery, "&", false, true);
             }
             userInfo = uri.getUserInfo();
             schemeSpecificPart = null;

http://git-wip-us.apache.org/repos/asf/cxf/blob/fc64f1c0/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
index 61308b0..d26cccc 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
@@ -1238,7 +1238,10 @@ public final class JAXRSUtils {
                 } else {
                     name = part.substring(0, index);
                     value =  index < part.length() ? part.substring(index + 1) : "";
-                    if (decode || (decodePlus && value.contains("+"))) {
+                    if (decodePlus && value.contains("+")) {
+                        value = value.replace('+', ' ');
+                    }
+                    if (decode) {
                         value = (";".equals(sep))
                             ? HttpUtils.pathDecode(value) : HttpUtils.urlDecode(value); 
                     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/fc64f1c0/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java
index fce1186..3abe884 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriBuilderImplTest.java
@@ -423,7 +423,7 @@ public class UriBuilderImplTest extends Assert {
         URI uri = new URI("http://bar/foo+%20%2B?q=a+b%20%2B");
         URI newUri = new UriBuilderImpl(uri).buildFromEncoded();   
         assertEquals("URI is not built correctly", 
-                     "http://bar/foo+%20%2B?q=a%2Bb%20%2B", newUri.toString());
+                     "http://bar/foo+%20%2B?q=a+b%20%2B", newUri.toString());
     }
     
     @Test