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
 	 */