Repository: wicket
Updated Branches:
  refs/heads/master 510c94109 -> 2ac29d306


WICKET-5689 Nested Redirects and REDIRECT_TO_BUFFER

(cherry picked from commit b5b2c9d10e6ae1df0e44a5448558da285d0cea99)

Conflicts:
        
wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java


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

Branch: refs/heads/master
Commit: 2ac29d3065a448c00a2ba7ac4b8cd53ae6c2b91b
Parents: 510c941
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Tue Sep 9 16:21:35 2014 +0300
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Tue Sep 9 16:37:44 2014 +0300

----------------------------------------------------------------------
 .../wicket/protocol/http/WebApplication.java    |  8 +++--
 .../request/handler/render/WebPageRenderer.java | 19 ++---------
 .../handler/render/TestPageRenderer.java        | 13 +-------
 .../handler/render/WebPageRendererTest.java     | 34 --------------------
 4 files changed, 8 insertions(+), 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac29d30/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 52d41ca..0ff49bc 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
@@ -876,10 +876,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/2ac29d30/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 aee0104..00a8ea2 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
@@ -86,12 +86,7 @@ public class WebPageRenderer extends PageRenderer
 
                WebApplication.get().storeBufferedResponse(getSessionId(), url, 
response);
        }
-
-       protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
-       {
-               return 
WebApplication.get().getAndRemoveBufferedResponse(getSessionId(), url);
-       }
-
+       
        /**
         * Renders page to a {@link BufferedWebResponse}. All URLs in page will 
be rendered relative to
         * <code>targetUrl</code>
@@ -195,17 +190,7 @@ 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);
-
-               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 (shouldRenderPageAndWriteResponse(requestCycle, 
currentUrl, targetUrl))
+               if (shouldRenderPageAndWriteResponse(requestCycle, currentUrl, 
targetUrl))
                {
                        BufferedWebResponse response = renderPage(currentUrl, 
requestCycle);
                        if (response != null)

http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac29d30/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
 
b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
index d37a846..bed615e 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/TestPageRenderer.java
@@ -37,23 +37,12 @@ class TestPageRenderer extends WebPageRenderer
        public boolean redirectToBuffer;
        public boolean sessionTemporary;
 
-       public TestPageRenderer()
-       {
-               this(null);
-       }
-
        public TestPageRenderer(RenderPageRequestHandler handler)
        {
                super(handler);
        }
 
        @Override
-       protected BufferedWebResponse getAndRemoveBufferedResponse(Url url)
-       {
-               return null;
-       }
-
-       @Override
        protected BufferedWebResponse renderPage(Url targetUrl, RequestCycle 
requestCycle)
        {
                BufferedWebResponse webResponse = super.renderPage(targetUrl, 
requestCycle);
@@ -112,4 +101,4 @@ class TestPageRenderer extends WebPageRenderer
        {
                return sessionTemporary;
        }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/2ac29d30/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 afe6928..b33514e 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
@@ -341,40 +341,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
         */

Reply via email to