You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2013/02/22 11:46:38 UTC
git commit: WICKET-4995 first acquire page to be rendered,
then map url for it so we don't have to re-render it afterwards if
the url changes in between (because of a pageId for a stateful page)
Updated Branches:
refs/heads/master cd632a5bf -> 1d2a6c0df
WICKET-4995 first acquire page to be rendered, then map url for
it so we don't have to re-render it afterwards if the url changes in
between (because of a pageId for a stateful page)
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1d2a6c0d
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1d2a6c0d
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1d2a6c0d
Branch: refs/heads/master
Commit: 1d2a6c0df6b4c4772083268a8ffbca372287cdb5
Parents: cd632a5
Author: svenmeier <sv...@apache.org>
Authored: Fri Feb 22 11:44:08 2013 +0100
Committer: svenmeier <sv...@apache.org>
Committed: Fri Feb 22 11:44:08 2013 +0100
----------------------------------------------------------------------
.../request/handler/render/WebPageRenderer.java | 26 +++++---------
1 files changed, 9 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/1d2a6c0d/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 46ee1b4..2f20845 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
@@ -240,28 +240,20 @@ public class WebPageRenderer extends PageRenderer
"matched. Details: " + details);
}
+ // force creation of possible stateful page to get the final target url
+ getPage();
+
+ Url renderTargetUrl = requestCycle.mapUrlFor(getRenderPageRequestHandler());
+
// redirect to buffer
- BufferedWebResponse response = renderPage(targetUrl, requestCycle);
+ BufferedWebResponse response = renderPage(renderTargetUrl, requestCycle);
if (response == null)
{
return;
}
- // check if the url hasn't changed after page has been rendered
- // (i.e. the stateless flag might have changed which could result in different page url)
- Url targetUrl2 = requestCycle.mapUrlFor(getRenderPageRequestHandler());
-
- if (targetUrl.getSegments().equals(targetUrl2.getSegments()) == false)
- {
- // the amount of segments is different - generated relative URLs will not work, we
- // need to rerender the page. This shouldn't happen, but in theory it can - with
- // RequestHandlerEncoders that produce different URLs with different amount of
- // segments for stateless and stateful pages
- response = renderPage(targetUrl2, requestCycle);
- }
-
- if (currentUrl.equals(targetUrl2))
+ if (currentUrl.equals(renderTargetUrl))
{
// no need to redirect when both urls are exactly the same
response.writeTo((WebResponse)requestCycle.getResponse());
@@ -281,9 +273,9 @@ public class WebPageRenderer extends PageRenderer
}
else
{
- storeBufferedResponse(targetUrl2, response);
+ storeBufferedResponse(renderTargetUrl, response);
- redirectTo(targetUrl2, requestCycle);
+ redirectTo(renderTargetUrl, requestCycle);
}
}
}