You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/03/12 11:13:39 UTC

git commit: WICKET-5078 RestartResponseException broken with page instance and bookmarkable page

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 <mg...@apache.org>
Authored: Tue Mar 12 11:13:08 2013 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
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;
+	}
 }