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 2014/09/09 15:22:11 UTC

git commit: WICKET-5689 Nested Redirects and REDIRECT_TO_BUFFER

Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x 702bf45a4 -> b5b2c9d10


WICKET-5689 Nested Redirects and REDIRECT_TO_BUFFER


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b5b2c9d1
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b5b2c9d1
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b5b2c9d1

Branch: refs/heads/wicket-6.x
Commit: b5b2c9d10e6ae1df0e44a5448558da285d0cea99
Parents: 702bf45
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Sep 9 16:21:35 2014 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Sep 9 16:21:35 2014 +0300

----------------------------------------------------------------------
 .../wicket/protocol/http/WebApplication.java    |  9 +++---
 .../request/handler/render/WebPageRenderer.java | 21 ++++++------
 .../handler/render/WebPageRendererTest.java     | 34 --------------------
 3 files changed, 16 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b5b2c9d1/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
index 3ad89e9..494e3e8 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
@@ -67,7 +67,6 @@ import org.apache.wicket.request.resource.CssResourceReference;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.resource.bundles.ReplacementResourceBundleReference;
-import org.apache.wicket.resource.bundles.ResourceBundleReference;
 import org.apache.wicket.session.HttpSessionStore;
 import org.apache.wicket.session.ISessionStore;
 import org.apache.wicket.util.IContextProvider;
@@ -873,10 +872,12 @@ public abstract class WebApplication extends Application
 	}
 
 	/**
-	 * 
-	 * @param sessionId
+	 * Retrieves a stored buffered response for a given sessionId and url.
+	 *
 	 * @param url
-	 * @return buffered response
+	 *          The url used as a key
+	 * @return the stored buffered response. {@code null} if there is no stored response for the given url
+	 * @see org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy#REDIRECT_TO_BUFFER
 	 */
 	public BufferedWebResponse getAndRemoveBufferedResponse(String sessionId, Url url)
 	{

http://git-wip-us.apache.org/repos/asf/wicket/blob/b5b2c9d1/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 3376177..42128c3 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
@@ -87,6 +87,16 @@ public class WebPageRenderer extends PageRenderer
 		WebApplication.get().storeBufferedResponse(getSessionId(), url, response);
 	}
 
+	/**
+	 * Retrieves a stored buffered response for a given url.
+	 *
+	 * @param url
+	 *          The url used as a key
+	 * @return the stored buffered response. {@code null} if there is no stored response for the given url
+	 * @see org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy#REDIRECT_TO_BUFFER
+	 * @deprecated Will be removed in Wicket 7.0. Use {@link org.apache.wicket.protocol.http.WebApplication#getAndRemoveBufferedResponse(String, org.apache.wicket.request.Url)} instead
+	 */
+	@Deprecated
 	protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
 	{
 		return WebApplication.get().getAndRemoveBufferedResponse(getSessionId(), url);
@@ -195,20 +205,11 @@ public class WebPageRenderer extends PageRenderer
 		// 3 rendering strategies and two kind of requests (ajax and normal)
 		//
 
-		// try to get an already rendered buffered response for current URL
-		BufferedWebResponse bufferedResponse = getAndRemoveBufferedResponse(currentUrl);
-
 		boolean isAjax = isAjax(requestCycle);
 
 		boolean shouldPreserveClientUrl = ((WebRequest)requestCycle.getRequest()).shouldPreserveClientUrl();
 
-		if (bufferedResponse != null)
-		{
-			logger.warn("The Buffered response should be handled by BufferedResponseRequestHandler");
-			// if there is saved response for this URL render it
-			bufferedResponse.writeTo((WebResponse)requestCycle.getResponse());
-		}
-		else if ((isAjax == false)
+		if ((isAjax == false)
 					&& (compatibleProtocols(currentUrl.getProtocol(), targetUrl.getProtocol())) && (//
 							getRedirectPolicy() == RedirectPolicy.NEVER_REDIRECT //
 						|| (isOnePassRender() && getRedirectPolicy() != RedirectPolicy.ALWAYS_REDIRECT) //

http://git-wip-us.apache.org/repos/asf/wicket/blob/b5b2c9d1/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
index 2200b14..c45676a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/WebPageRendererTest.java
@@ -335,40 +335,6 @@ public class WebPageRendererTest extends Assert
 	}
 
 	/**
-	 * Tests that when there is already saved buffered response then it will be used without
-	 * checking the rendering strategies or redirect policies
-	 */
-	@Test
-	public void testGetAndRemoveBufferedResponse()
-	{
-		final BufferedWebResponse bufferedResponse = mock(BufferedWebResponse.class);
-
-		PageRenderer renderer = new TestPageRenderer(handler)
-		{
-			@Override
-			protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
-			{
-				return bufferedResponse;
-			}
-
-		};
-
-		Url sameUrl = Url.parse("anything");
-
-		when(urlRenderer.getBaseUrl()).thenReturn(sameUrl);
-
-		when(requestCycle.mapUrlFor(eq(handler))).thenReturn(sameUrl);
-
-		when(request.shouldPreserveClientUrl()).thenReturn(false);
-
-		renderer.respond(requestCycle);
-
-		verify(bufferedResponse).writeTo(response);
-		verify(response, never()).write(any(byte[].class));
-		verify(response, never()).sendRedirect(anyString());
-	}
-
-	/**
 	 * Tests that when {@link RenderPageRequestHandler#getRedirectPolicy()} is
 	 * {@link RedirectPolicy#ALWAYS_REDIRECT} there a redirect must be issued
 	 */