Updated Branches: refs/heads/wicket-1.5.x 291b85e3a -> ea440cc9f
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/ea440cc9 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ea440cc9 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ea440cc9 Branch: refs/heads/wicket-1.5.x Commit: ea440cc9f46db474ac8caa3678f20a2d4eb3ceb3 Parents: 291b85e 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:46:56 2012 +0300 ---------------------------------------------------------------------- .../wicket/request/handler/PageProvider.java | 12 +++++++++++- .../markup/html/link/MountedPageLinkTest.java | 5 +++++ .../wicket/markup/html/link/PageWithLink.java | 10 +++++++++- 3 files changed, 25 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/ea440cc9/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java index 6f446bc..a6ce874 100644 --- a/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java +++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java @@ -261,7 +261,17 @@ public class PageProvider implements IPageProvider, IIntrospectablePageProvider { 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/ea440cc9/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 03c54e8..33eb02d 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 @@ -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/ea440cc9/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..a491c05 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,7 @@ */ package org.apache.wicket.markup.html.link; +import org.apache.wicket.markup.html.IHeaderResponse; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.junit.Assert; @@ -25,7 +26,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 +38,11 @@ public class PageWithLink extends WebPage } }); } + + @Override + public void renderHead(IHeaderResponse response) + { + super.renderHead(response); + response.renderString("param=" + getPageParameters().get("param")); + } }
