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