Repository: wicket
Updated Branches:
  refs/heads/master c24d830cd -> bb9c1044e


Code beautifying: method WebPageRenderer.respond

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

Branch: refs/heads/master
Commit: bb9c1044e5f1ba8902aa69073ef9fb236802d277
Parents: c24d830
Author: andrea del bene <[email protected]>
Authored: Wed Jul 16 19:33:16 2014 +0200
Committer: andrea del bene <[email protected]>
Committed: Wed Jul 16 19:33:16 2014 +0200

----------------------------------------------------------------------
 .../request/handler/render/WebPageRenderer.java | 169 +++++++++----------
 1 file changed, 82 insertions(+), 87 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/bb9c1044/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 0b5dee4..af9dbee 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
@@ -198,99 +198,94 @@ public class WebPageRenderer extends PageRenderer
                        // if there is saved response for this URL render it
                        
bufferedResponse.writeTo((WebResponse)requestCycle.getResponse());
                }
+               else if (shouldRenderPageAndWriteResponse(requestCycle, 
currentUrl, targetUrl))
+               {
+                       BufferedWebResponse response = renderPage(currentUrl, 
requestCycle);
+                       if (response != null)
+                       {
+                               
response.writeTo((WebResponse)requestCycle.getResponse());
+                       }
+               }
+               else if (shouldRedirectToTargetUrl(requestCycle, currentUrl, 
targetUrl))
+               {
+                       
+                       redirectTo(targetUrl, requestCycle);
+
+                       // note: if we had session here we would render the 
page to buffer and then
+                       // redirect to URL generated *after* page has been 
rendered (the statelessness
+                       // may change during render). this would save one 
redirect because now we have
+                       // to render to URL generated *before* page is 
rendered, render the page, get
+                       // URL after render and if the URL is different 
(meaning page is not stateless),
+                       // save the buffer and redirect again (which is pretty 
much what the next step
+                       // does)
+               }
                else
                {
-                       if (shouldRenderPageAndWriteResponse(requestCycle, 
currentUrl, targetUrl)) //
+                       if (isRedirectToBuffer() == false && 
logger.isDebugEnabled())
+                       {
+                               String details = String
+                                       .format(
+                                               "redirect strategy: '%s', 
isAjax: '%s', redirect policy: '%s', "
+                                                       + "current url: '%s', 
target url: '%s', is new: '%s', is stateless: '%s', is temporary: '%s'",
+                                               
Application.get().getRequestCycleSettings().getRenderStrategy(),
+                                               isAjax(requestCycle), 
getRedirectPolicy(), currentUrl, targetUrl,
+                                               isNewPageInstance(), 
isPageStateless(), isSessionTemporary());
+                               logger
+                                       .debug("Falling back to 
Redirect_To_Buffer render strategy because none of the conditions "
+                                               + "matched. Details: " + 
details);
+                       }
+
+                       // force creation of possible stateful page to get the 
final target url
+                       getPage();
+
+                       Url beforeRenderUrl = 
requestCycle.mapUrlFor(getRenderPageRequestHandler());
+
+                       // redirect to buffer
+                       BufferedWebResponse response = 
renderPage(beforeRenderUrl, requestCycle);
+
+                       if (response == null)
+                       {
+                               return;
+                       }
+
+                       // the url might have changed after page has been 
rendered (e.g. the
+                       // stateless flag might have changed because stateful 
components
+                       // were added)
+                       final Url afterRenderUrl = requestCycle
+                               .mapUrlFor(getRenderPageRequestHandler());
+
+                       if 
(beforeRenderUrl.getSegments().equals(afterRenderUrl.getSegments()) == false)
                        {
-                               BufferedWebResponse response = 
renderPage(currentUrl, requestCycle);
-                               if (response != null)
-                               {
-                                       
response.writeTo((WebResponse)requestCycle.getResponse());
-                               }
+                               // the amount of segments is different - 
generated relative URLs
+                               // will not work, we need to rerender the page. 
This can happen
+                               // with IRequestHandlers that produce different 
URLs with
+                               // different amount of segments for stateless 
and stateful pages
+                               response = renderPage(afterRenderUrl, 
requestCycle);
+                       }
+
+                       if (currentUrl.equals(afterRenderUrl))
+                       {
+                               // no need to redirect when both urls are 
exactly the same
+                               
response.writeTo((WebResponse)requestCycle.getResponse());
+                       }
+                       // if page is still stateless after render
+                       else if (isPageStateless() && 
!enableRedirectForStatelessPage())
+                       {
+                               // we don't want the redirect to happen for 
stateless page
+                               // example:
+                               // when a normal mounted stateful page is hit 
at /mount/point
+                               // wicket renders the page to buffer and 
redirects to /mount/point?12
+                               // but for stateless page the redirect is not 
necessary
+                               // also for listener interface on stateful page 
we want to redirect
+                               // after the listener is invoked, but on 
stateless page the user
+                               // must ask for redirect explicitly
+                               
response.writeTo((WebResponse)requestCycle.getResponse());
                        }
                        else
                        {
-                               if (shouldRedirectToTargetUrl(requestCycle, 
currentUrl, targetUrl))
-                               {
-                                       redirectTo(targetUrl, requestCycle);
-
-                                       // note: if we had session here we 
would render the page to buffer and then
-                                       // redirect to URL generated *after* 
page has been rendered (the statelessness
-                                       // may change during render). this 
would save one redirect because now we have
-                                       // to render to URL generated *before* 
page is rendered, render the page, get
-                                       // URL after render and if the URL is 
different (meaning page is not stateless),
-                                       // save the buffer and redirect again 
(which is pretty much what the next step
-                                       // does)
-                               }
-                               else
-                               {
-                                       if (isRedirectToBuffer() == false && 
logger.isDebugEnabled())
-                                       {
-                                               String details = String
-                                                       .format(
-                                                               "redirect 
strategy: '%s', isAjax: '%s', redirect policy: '%s', "
-                                                                       + 
"current url: '%s', target url: '%s', is new: '%s', is stateless: '%s', is 
temporary: '%s'",
-                                                               
Application.get().getRequestCycleSettings().getRenderStrategy(),
-                                                               
isAjax(requestCycle), getRedirectPolicy(), currentUrl, targetUrl,
-                                                               
isNewPageInstance(), isPageStateless(), isSessionTemporary());
-                                               logger
-                                                       .debug("Falling back to 
Redirect_To_Buffer render strategy because none of the conditions "
-                                                               + "matched. 
Details: " + details);
-                                       }
-
-                                       // force creation of possible stateful 
page to get the final target url
-                                       getPage();
-
-                                       Url beforeRenderUrl = 
requestCycle.mapUrlFor(getRenderPageRequestHandler());
-
-                                       // redirect to buffer
-                                       BufferedWebResponse response = 
renderPage(beforeRenderUrl, requestCycle);
-
-                                       if (response == null)
-                                       {
-                                               return;
-                                       }
-
-                                       // the url might have changed after 
page has been rendered (e.g. the
-                                       // stateless flag might have changed 
because stateful components
-                                       // were added)
-                                       final Url afterRenderUrl = requestCycle
-                                               
.mapUrlFor(getRenderPageRequestHandler());
-
-                                       if 
(beforeRenderUrl.getSegments().equals(afterRenderUrl.getSegments()) == false)
-                                       {
-                                               // the amount of segments is 
different - generated relative URLs
-                                               // will not work, we need to 
rerender the page. This can happen
-                                               // with IRequestHandlers that 
produce different URLs with
-                                               // different amount of segments 
for stateless and stateful pages
-                                               response = 
renderPage(afterRenderUrl, requestCycle);
-                                       }
-
-                                       if (currentUrl.equals(afterRenderUrl))
-                                       {
-                                               // no need to redirect when 
both urls are exactly the same
-                                               
response.writeTo((WebResponse)requestCycle.getResponse());
-                                       }
-                                       // if page is still stateless after 
render
-                                       else if (isPageStateless() && 
!enableRedirectForStatelessPage())
-                                       {
-                                               // we don't want the redirect 
to happen for stateless page
-                                               // example:
-                                               // when a normal mounted 
stateful page is hit at /mount/point
-                                               // wicket renders the page to 
buffer and redirects to /mount/point?12
-                                               // but for stateless page the 
redirect is not necessary
-                                               // also for listener interface 
on stateful page we want to redirect
-                                               // after the listener is 
invoked, but on stateless page the user
-                                               // must ask for redirect 
explicitly
-                                               
response.writeTo((WebResponse)requestCycle.getResponse());
-                                       }
-                                       else
-                                       {
-                                               
storeBufferedResponse(afterRenderUrl, response);
-
-                                               redirectTo(afterRenderUrl, 
requestCycle);
-                                       }
-                               }
+                               storeBufferedResponse(afterRenderUrl, response);
+
+                               redirectTo(afterRenderUrl, requestCycle);
                        }
                }
        }

Reply via email to