Updated Branches: refs/heads/master 6293b3a0c -> 556a22367
WICKET-4594 Do not use the parsed PageParameters when re-creating an expired page Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/556a2236 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/556a2236 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/556a2236 Branch: refs/heads/master Commit: 556a2236791a70401a49bb70535bca3ecb27347e Parents: 6293b3a Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Fri Jun 8 17:40:26 2012 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Fri Jun 8 17:40:26 2012 +0300 ---------------------------------------------------------------------- .../wicket/core/request/handler/PageProvider.java | 12 +++++++++++- .../markup/html/link/MountedPageLinkTest.java | 7 ++++++- .../wicket/markup/html/link/PageWithLink.java | 13 ++++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/556a2236/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java index 50402f6..a5ae4f2 100644 --- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java +++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageProvider.java @@ -265,7 +265,17 @@ public class PageProvider implements IPageProvider { if (pageClass != null) { - page = getPageSource().newPageInstance(pageClass, pageParameters); + PageParameters parameters; + if (pageId != null) + { + // WICKET-4594 - re-creating an expired page. Ignore the parsed parameters for the callback url + parameters = new PageParameters(); + } + else + { + parameters = pageParameters; + } + page = getPageSource().newPageInstance(pageClass, parameters); freshCreated = true; } } http://git-wip-us.apache.org/repos/asf/wicket/blob/556a2236/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java index a665352..f273606 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java @@ -17,8 +17,8 @@ package org.apache.wicket.markup.html.link; import org.apache.wicket.WicketTestCase; -import org.apache.wicket.protocol.http.PageExpiredException; import org.apache.wicket.core.request.mapper.PageInstanceMapper; +import org.apache.wicket.protocol.http.PageExpiredException; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.settings.IPageSettings; import org.junit.Before; @@ -66,11 +66,16 @@ public class MountedPageLinkTest extends WicketTestCase { PageWithLink page = tester.startPage(PageWithLink.class, new PageParameters().add("param", "value")); + assertEquals("value", page.getPageParameters().get("param").toString()); + tester.assertContains("param=value"); Link<?> link = (Link<?>)page.get("link"); String url = link.getURL().toString(); // simulate a page expiry url = url.replace("part2?0", "part2?3"); tester.executeUrl(url); + + // request parameters to callback urls should be ignored for the re-created page (WICKET-4594) + tester.assertContainsNot("param=value"); } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/556a2236/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java index 4a309fe..e6af20c 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.markup.html.link; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.markup.head.StringHeaderItem; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.junit.Assert; @@ -25,7 +27,7 @@ public class PageWithLink extends WebPage public PageWithLink(PageParameters parameters) { super(parameters); - Assert.assertEquals("value", getPageParameters().get("param").toString()); + add(new Link<Void>("link") { private static final long serialVersionUID = 1L; @@ -37,4 +39,13 @@ public class PageWithLink extends WebPage } }); } + + @Override + public void renderHead(IHeaderResponse response) + { + super.renderHead(response); + + response.render(StringHeaderItem.forString("param=" + getPageParameters().get("param"))); + + } }
