Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x d24639522 -> 2200ad261


WICKET-5770 PageParametersEncoder should not decode parameters with no name


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

Branch: refs/heads/wicket-6.x
Commit: 2200ad261d11d0354bd66c89d3665fce651f816e
Parents: d246395
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu Nov 20 10:25:04 2014 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Thu Nov 20 10:25:04 2014 +0200

----------------------------------------------------------------------
 .../request/mapper/parameter/PageParametersEncoder.java       | 7 ++++++-
 .../request/mapper/parameter/PageParametersEncoderTest.java   | 6 +++++-
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/2200ad26/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
index 8139460..1806e35 100644
--- 
a/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
+++ 
b/wicket-request/src/main/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoder.java
@@ -18,6 +18,7 @@ package org.apache.wicket.request.mapper.parameter;
 
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.Url.QueryParameter;
+import org.apache.wicket.util.string.Strings;
 
 /**
  * Simple encoder with direct indexed/named parameters mapping.
@@ -50,7 +51,11 @@ public class PageParametersEncoder implements 
IPageParametersEncoder
 
                for (QueryParameter p : url.getQueryParameters())
                {
-                       parameters.add(p.getName(), p.getValue());
+                       String parameterName = p.getName();
+                       if (Strings.isEmpty(parameterName) == false)
+                       {
+                               parameters.add(parameterName, p.getValue());
+                       }
                }
 
                return parameters.isEmpty() ? null : parameters;

http://git-wip-us.apache.org/repos/asf/wicket/blob/2200ad26/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
 
b/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
index 0490d0c..e58a920 100644
--- 
a/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
+++ 
b/wicket-request/src/test/java/org/apache/wicket/request/mapper/parameter/PageParametersEncoderTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.request.mapper.parameter;
 
+import static org.hamcrest.CoreMatchers.is;
+
 import org.apache.wicket.request.Url;
 import org.junit.Assert;
 import org.junit.Test;
@@ -35,9 +37,11 @@ public class PageParametersEncoderTest extends Assert
        {
                PageParametersEncoder encoder = new PageParametersEncoder();
 
-               Url url = Url.parse("idx1/idx2?named1=value1&named2=value2");
+               Url url = Url.parse("idx1/idx2?named1=value1&=&named2=value2");
 
                PageParameters pageParameters = 
encoder.decodePageParameters(url);
+               assertThat(pageParameters.getIndexedCount(), is(2));
+               assertThat(pageParameters.getNamedKeys().size(), is(2));
                assertEquals("idx1", pageParameters.get(0).toOptionalString());
                assertEquals("idx2", pageParameters.get(1).toOptionalString());
                assertEquals("value1", 
pageParameters.get("named1").toOptionalString());

Reply via email to