Updated Branches:
  refs/heads/wicket-6.x 1cc56f56a -> 3fca3415b

WICKET-5471 Store the page if it is known that it will be used in a following 
request

Better fix.
The page will be touched (i.e. stored). But it won't be initialized unless 
really used because setStatelessHint(false) is called as well.


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3fca3415
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3fca3415
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3fca3415

Branch: refs/heads/wicket-6.x
Commit: 3fca3415b46af58591463c7a1c8843c0e9f894ac
Parents: 1cc56f5
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Wed Jan 15 10:10:27 2014 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Wed Jan 15 10:10:27 2014 +0200

----------------------------------------------------------------------
 wicket-core/src/main/java/org/apache/wicket/Page.java        | 3 ++-
 .../java/org/apache/wicket/request/cycle/RequestCycle.java   | 8 +++++---
 2 files changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/3fca3415/wicket-core/src/main/java/org/apache/wicket/Page.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Page.java 
b/wicket-core/src/main/java/org/apache/wicket/Page.java
index a439115..d3f8495 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Page.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Page.java
@@ -967,7 +967,8 @@ public abstract class Page extends MarkupContainer 
implements IRedirectListener,
        {
                setStatelessHint(false);
 
-               internalInitialize();
+               // make sure the page will be available on following request
+               getSession().getPageManager().touchPage(this);
 
                return new PageReference(numericId);
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/3fca3415/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java 
b/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
index c754b56..561fce7 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
@@ -656,10 +656,12 @@ public class RequestCycle implements IRequestCycle, 
IEventSink
        {
                if (page instanceof Page)
                {
-                       Page _page = (Page) page;
-                       _page.setStatelessHint(false);
-                       _page.internalInitialize();
+                       ((Page) page).setStatelessHint(false);
                }
+
+               // make sure the page will be available on following request
+               Session.get().getPageManager().touchPage(page);
+
                scheduleRequestHandlerAfterCurrent(new 
RenderPageRequestHandler(new PageProvider(page),
                        RenderPageRequestHandler.RedirectPolicy.AUTO_REDIRECT));
        }

Reply via email to