Updated Branches:
  refs/heads/master 2974a5ab4 -> bc448eb9d

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/bc448eb9
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bc448eb9
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bc448eb9

Branch: refs/heads/master
Commit: bc448eb9d1325fd486039eea0abc8b272027314f
Parents: 2974a5a
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:08 2013 +0100

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


http://git-wip-us.apache.org/repos/asf/wicket/blob/bc448eb9/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 6c7ef99..cbd4346 100644
--- a/wicket-core/src/main/java/org/apache/wicket/RestartResponseException.java
+++ b/wicket-core/src/main/java/org/apache/wicket/RestartResponseException.java
@@ -74,7 +74,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);
        }
 
        /**
@@ -92,4 +92,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