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/08/08 12:26:23 UTC
[1/2] git commit: formatted
Updated Branches:
refs/heads/wicket-6.x 000cd8531 -> 59d04da2a
formatted
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/11c5b62d
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/11c5b62d
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/11c5b62d
Branch: refs/heads/wicket-6.x
Commit: 11c5b62d54dc76bd2a0196ff3e460ffdb29cb8d8
Parents: 000cd85
Author: svenmeier <sv...@meiers.net>
Authored: Thu Aug 8 11:52:46 2013 +0200
Committer: svenmeier <sv...@meiers.net>
Committed: Thu Aug 8 11:52:46 2013 +0200
----------------------------------------------------------------------
.../request/handler/render/WebPageRenderer.java | 25 +++++++++++---------
1 file changed, 14 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/11c5b62d/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 5dd15c4..f49a92b 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
@@ -107,7 +107,7 @@ public class WebPageRenderer extends PageRenderer
}
// keep the original response
- final WebResponse originalResponse = (WebResponse) requestCycle.getResponse();
+ final WebResponse originalResponse = (WebResponse)requestCycle.getResponse();
// buffered web response for page
BufferedWebResponse response = new BufferedWebResponse(originalResponse);
@@ -123,10 +123,11 @@ public class WebPageRenderer extends PageRenderer
if (scheduled == null && requestCycle.getRequestHandlerScheduledAfterCurrent() != null)
{
// This is a special case.
- // During page render another request handler got scheduled and will want to overwrite
- // the response, so we need to let it.
- // Just preserve the meta data headers
- originalResponse.reset(); // clear the initial actions because they are already copied into the new response's actions
+ // During page render another request handler got scheduled and will want to
+ // overwrite the response, so we need to let it.
+ // Just preserve the meta data headers. Clear the initial actions because they are
+ // already copied into the new response's actions
+ originalResponse.reset();
response.writeMetaData(originalResponse);
return null;
}
@@ -253,13 +254,15 @@ public class WebPageRenderer extends PageRenderer
{
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, getRedirectPolicy(), currentUrl, targetUrl, getPageProvider().isNewPageInstance(),
- getPage().isPageStateless(), isSessionTemporary());
+ 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,
+ getRedirectPolicy(), currentUrl, targetUrl,
+ getPageProvider().isNewPageInstance(), getPage().isPageStateless(),
+ isSessionTemporary());
logger.debug("Falling back to Redirect_To_Buffer render strategy because none of the conditions " +
- "matched. Details: " + details);
+ "matched. Details: " + details);
}
// force creation of possible stateful page to get the final target url
[2/2] git commit: WICKET-5309 check whether rendering changed page url
Posted by sv...@apache.org.
WICKET-5309 check whether rendering changed page url
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/59d04da2
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/59d04da2
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/59d04da2
Branch: refs/heads/wicket-6.x
Commit: 59d04da2a8b1fc600d0a56464aa3c26b59a39cfd
Parents: 11c5b62
Author: svenmeier <sv...@meiers.net>
Authored: Thu Aug 8 12:25:31 2013 +0200
Committer: svenmeier <sv...@meiers.net>
Committed: Thu Aug 8 12:25:31 2013 +0200
----------------------------------------------------------------------
.../request/handler/render/WebPageRenderer.java | 24 ++++++++++++++++----
1 file changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/59d04da2/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 f49a92b..8e77875 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
@@ -268,17 +268,31 @@ public class WebPageRenderer extends PageRenderer
// force creation of possible stateful page to get the final target url
getPage();
- Url renderTargetUrl = requestCycle.mapUrlFor(getRenderPageRequestHandler());
+ Url beforeRenderUrl = requestCycle.mapUrlFor(getRenderPageRequestHandler());
// redirect to buffer
- BufferedWebResponse response = renderPage(renderTargetUrl, requestCycle);
+ BufferedWebResponse response = renderPage(beforeRenderUrl, requestCycle);
if (response == null)
{
return;
}
- if (currentUrl.equals(renderTargetUrl))
+ // 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());
@@ -298,9 +312,9 @@ public class WebPageRenderer extends PageRenderer
}
else
{
- storeBufferedResponse(renderTargetUrl, response);
+ storeBufferedResponse(afterRenderUrl, response);
- redirectTo(renderTargetUrl, requestCycle);
+ redirectTo(afterRenderUrl, requestCycle);
}
}
}