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

Reply via email to