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