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);
 			}
 		}
 	}