Updated Branches:
  refs/heads/wicket-1.5.x 88961c1a9 -> 2a7ba5ef1

WICKET-5078 RestartResponseException broken with page instance and bookmarkable 
page


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

Branch: refs/heads/wicket-1.5.x
Commit: 2a7ba5ef116a7093d5e8e870c16ad6d4466c2953
Parents: 88961c1
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Tue Mar 12 11:13:08 2013 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Tue Mar 12 11:13:59 2013 +0100

----------------------------------------------------------------------
 .../apache/wicket/RestartResponseException.java    |   19 ++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/2a7ba5ef/wicket-core/src/main/java/org/apache/wicket/RestartResponseException.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/RestartResponseException.java 
b/wicket-core/src/main/java/org/apache/wicket/RestartResponseException.java
index 406900b..3c5673d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/RestartResponseException.java
+++ b/wicket-core/src/main/java/org/apache/wicket/RestartResponseException.java
@@ -73,7 +73,7 @@ public class RestartResponseException extends 
ResetResponseException
         */
        public RestartResponseException(final IRequestablePage page)
        {
-               this(new PageProvider(page), RedirectPolicy.AUTO_REDIRECT);
+               this(new PageProvider(makeStateful(page)), 
RedirectPolicy.AUTO_REDIRECT);
        }
 
        /**
@@ -91,4 +91,21 @@ public class RestartResponseException extends 
ResetResponseException
                super(new RenderPageRequestHandler(pageProvider, 
redirectPolicy));
        }
 
+       /**
+        * Marks the page as stateful so that it is still available after a 
redirect.
+        * See WICKET-5078 and WICKET-3965
+        *
+        * @param page
+        *      The page to mark stateful
+        * @return The passed page.
+        *
+        */
+       private static IRequestablePage makeStateful(IRequestablePage page)
+       {
+               if (page instanceof Page)
+               {
+                       ((Page)page).setStatelessHint(false);
+               }
+               return page;
+       }
 }

Reply via email to