Repository: wicket Updated Branches: refs/heads/master 1cb35a067 -> cf6172bd5
WICKET-5770 PageParametersEncoder should not decode parameters with no name (cherry picked from commit 2200ad261d11d0354bd66c89d3665fce651f816e) Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/cf6172bd Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/cf6172bd Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/cf6172bd Branch: refs/heads/master Commit: cf6172bd5acceac19f4322dcf7ce2ec7aef76a38 Parents: 1cb35a0 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:26:46 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/cf6172bd/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 13e45ec..aa095de 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. @@ -47,7 +48,11 @@ public class PageParametersEncoder implements IPageParametersEncoder for (QueryParameter p : url.getQueryParameters()) { - parameters.add(p.getName(), p.getValue(), INamedParameters.Type.QUERY_STRING); + String parameterName = p.getName(); + if (Strings.isEmpty(parameterName) == false) + { + parameters.add(parameterName, p.getValue(), INamedParameters.Type.QUERY_STRING); + } } return parameters.isEmpty() ? null : parameters; http://git-wip-us.apache.org/repos/asf/wicket/blob/cf6172bd/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());
