Updated Branches: refs/heads/master b73a9e576 -> 180b04d7e
WICKET-4636 Using setResponsePage() before page rendering should skip the rendering of the page Get the page before making the check for a scheduled request handler because the page's constructor may call setResponsePage() Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/180b04d7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/180b04d7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/180b04d7 Branch: refs/heads/master Commit: 180b04d7e92a6f55af9e52dd486cce9d2610ef38 Parents: b73a9e5 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Mon Jul 9 14:08:06 2012 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Mon Jul 9 14:08:06 2012 +0300 ---------------------------------------------------------------------- .../request/handler/render/WebPageRenderer.java | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/180b04d7/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java index c052c3f..696f12d 100644 --- a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java +++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java @@ -16,14 +16,15 @@ */ package org.apache.wicket.request.handler.render; +import org.apache.wicket.core.request.handler.RenderPageRequestHandler; +import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy; import org.apache.wicket.protocol.http.BufferedWebResponse; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.IRequestHandler; import org.apache.wicket.request.Request; import org.apache.wicket.request.Url; +import org.apache.wicket.request.component.IRequestablePage; import org.apache.wicket.request.cycle.RequestCycle; -import org.apache.wicket.core.request.handler.RenderPageRequestHandler; -import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy; import org.apache.wicket.request.http.WebRequest; import org.apache.wicket.request.http.WebResponse; import org.slf4j.Logger; @@ -87,6 +88,10 @@ public class WebPageRenderer extends PageRenderer */ protected BufferedWebResponse renderPage(Url targetUrl, RequestCycle requestCycle) { + // get the page before checking for a scheduled request handler because + // the page may call setResponsePage in its constructor + IRequestablePage requestablePage = getPage(); + IRequestHandler scheduled = requestCycle.getRequestHandlerScheduledAfterCurrent(); if (scheduled != null) @@ -107,7 +112,7 @@ public class WebPageRenderer extends PageRenderer try { requestCycle.setResponse(response); - getPage().renderPage(); + requestablePage.renderPage(); if (scheduled == null && requestCycle.getRequestHandlerScheduledAfterCurrent() != null) {
