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 2012/07/09 13:33:07 UTC
[2/2] git commit: WICKET-4636 Using setResponsePage() before page
rendering should skip the rendering of the page
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/939971b9
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/939971b9
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/939971b9
Branch: refs/heads/wicket-1.5.x
Commit: 939971b99dc9690d772fcf3d78afcb1edb259639
Parents: 4317b47
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Jul 9 14:08:06 2012 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Jul 9 14:24:20 2012 +0300
----------------------------------------------------------------------
.../request/handler/render/WebPageRenderer.java | 17 +++++++++-----
1 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/939971b9/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 18d8597..d458af2 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
@@ -21,6 +21,7 @@ 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.request.handler.RenderPageRequestHandler;
import org.apache.wicket.request.handler.RenderPageRequestHandler.RedirectPolicy;
@@ -31,7 +32,7 @@ import org.slf4j.LoggerFactory;
/**
* {@link PageRenderer} for web applications.
- *
+ *
* @author Matej Knopp
*/
public class WebPageRenderer extends PageRenderer
@@ -40,7 +41,7 @@ public class WebPageRenderer extends PageRenderer
/**
* Construct.
- *
+ *
* @param renderPageRequestHandler
*/
public WebPageRenderer(RenderPageRequestHandler renderPageRequestHandler)
@@ -63,7 +64,7 @@ public class WebPageRenderer extends PageRenderer
}
/**
- *
+ *
* @param url
* @param response
*/
@@ -80,13 +81,17 @@ public class WebPageRenderer extends PageRenderer
/**
* Renders page to a {@link BufferedWebResponse}. All URLs in page will be rendered relative to
* <code>targetUrl</code>
- *
+ *
* @param targetUrl
* @param requestCycle
* @return BufferedWebResponse containing page body
*/
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)
{
@@ -133,7 +138,7 @@ public class WebPageRenderer extends PageRenderer
}
/**
- *
+ *
* @param url
* @param requestCycle
*/