You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2013/06/21 14:57:18 UTC
git commit: WICKET-5247 don't map handler when value for required
placeholder is missing
Updated Branches:
refs/heads/master 4eca43fd1 -> 44a4132fc
WICKET-5247 don't map handler when value for required placeholder is
missing
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/44a4132f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/44a4132f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/44a4132f
Branch: refs/heads/master
Commit: 44a4132fca07bed782d13ff1f0a72e1b4bd863ec
Parents: 4eca43f
Author: svenmeier <sv...@meiers.net>
Authored: Fri Jun 21 14:54:25 2013 +0200
Committer: svenmeier <sv...@meiers.net>
Committed: Fri Jun 21 14:54:25 2013 +0200
----------------------------------------------------------------------
.../core/request/mapper/MountedMapper.java | 5 +++++
.../core/request/mapper/MountedMapperTest.java | 20 ++++++++++++++++++++
2 files changed, 25 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/44a4132f/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/MountedMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/MountedMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/MountedMapper.java
index 12f8985..c55222e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/MountedMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/MountedMapper.java
@@ -424,6 +424,11 @@ public class MountedMapper extends AbstractBookmarkableMapper
String optionalPlaceholder = getOptionalPlaceholder(mountSegments[i]);
if (placeholder != null)
{
+ if (!copy.getNamedKeys().contains(placeholder))
+ {
+ // no value for placeholder - cannot mount
+ return null;
+ }
url.getSegments().set(i - dropped, copy.get(placeholder).toString(""));
copy.remove(placeholder);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/44a4132f/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
index d8cccb5..555bf33 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/MountedMapperTest.java
@@ -680,6 +680,26 @@ public class MountedMapperTest extends AbstractMapperTest
assertEquals("some/p1/path/p2/i1/i2?1&a=b&b=c", url.toString());
}
+ /**
+ * WICKET-5247 page instantiated without required parameters won't be mapped
+ */
+ @Test
+ public void placeholderEncode4()
+ {
+ PageProvider provider = new PageProvider(new MockPage())
+ {
+ @Override
+ public boolean isNewPageInstance()
+ {
+ return false;
+ }
+ };
+ provider.setPageSource(context);
+ IRequestHandler handler = new RenderPageRequestHandler(provider);
+ Url url = placeholderEncoder.mapHandler(handler);
+ assertNull(url);
+ }
+
/** */
@Test
public void optionPlaceholderDecode1()