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")));
+
+       }
 }

Reply via email to