You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/07/10 13:53:17 UTC

[08/17] git commit: WICKET-5269 restore the response where it was altered

WICKET-5269 restore the response where it was altered

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

Branch: refs/heads/event-delegating-behavior
Commit: 3fd6732a6aa01861071cb68a85eadf6908e4dbce
Parents: 0460a8d
Author: svenmeier <sv...@meiers.net>
Authored: Tue Jul 9 16:05:45 2013 +0200
Committer: svenmeier <sv...@meiers.net>
Committed: Tue Jul 9 16:05:45 2013 +0200

----------------------------------------------------------------------
 .../apache/wicket/ajax/AjaxRequestHandler.java  | 16 ++---
 .../org/apache/wicket/ajax/XmlAjaxResponse.java | 67 ++++++++++----------
 2 files changed, 39 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/3fd6732a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java
index 15d2ca2..3de3519 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxRequestHandler.java
@@ -357,18 +357,10 @@ public class AjaxRequestHandler implements AjaxRequestTarget
 		// Make sure it is not cached by a client
 		response.disableCaching();
 
-		try
-		{
-			final StringResponse bodyResponse = new StringResponse();
-			responseObject.writeTo(bodyResponse, encoding);
-			CharSequence filteredResponse = invokeResponseFilters(bodyResponse);
-			response.write(filteredResponse);
-		}
-		finally
-		{
-			// restore the original response
-			rc.setResponse(response);
-		}
+		final StringResponse bodyResponse = new StringResponse();
+		responseObject.writeTo(bodyResponse, encoding);
+		CharSequence filteredResponse = invokeResponseFilters(bodyResponse);
+		response.write(filteredResponse);
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/wicket/blob/3fd6732a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java
index 9442cb3..80c056e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java
@@ -81,11 +81,6 @@ public abstract class XmlAjaxResponse extends AbstractAjaxResponse
 
 		component.setOutputMarkupId(true);
 
-		// substitute our encoding response for the real one so we can capture
-		// component's markup in a manner safe for transport inside CDATA block
-		encodingBodyResponse.reset();
-		RequestCycle.get().setResponse(encodingBodyResponse);
-
 		// Initialize temporary variables
 		final Page page = component.findParent(Page.class);
 		if (page == null)
@@ -97,47 +92,55 @@ public abstract class XmlAjaxResponse extends AbstractAjaxResponse
 			return;
 		}
 
-		page.startComponentRender(component);
+		// substitute our encoding response for the old one so we can capture
+		// component's markup in a manner safe for transport inside CDATA block
+		Response oldResponse = RequestCycle.get().setResponse(encodingBodyResponse);
 
 		try
 		{
-			component.prepareForRender();
+			encodingBodyResponse.reset();
+			
+			page.startComponentRender(component);
 
-			// render any associated headers of the component
-			writeHeaderContribution(response, component);
-		}
-		catch (RuntimeException e)
-		{
 			try
 			{
-				component.afterRender();
+				component.prepareForRender();
+
+				// render any associated headers of the component
+				writeHeaderContribution(response, component);
 			}
-			catch (RuntimeException e2)
+			catch (RuntimeException e)
 			{
-				// ignore this one could be a result off.
+				try
+				{
+					component.afterRender();
+				}
+				catch (RuntimeException e2)
+				{
+					// ignore this one could be a result off.
+				}
+				encodingBodyResponse.reset();
+				throw e;
 			}
-			// Restore original response
-			RequestCycle.get().setResponse(response);
-			encodingBodyResponse.reset();
-			throw e;
-		}
 
-		try
-		{
-			component.render();
+			try
+			{
+				component.render();
+			}
+			catch (RuntimeException e)
+			{
+				encodingBodyResponse.reset();
+				throw e;
+			}
+
+			page.endComponentRender(component);
 		}
-		catch (RuntimeException e)
+		finally
 		{
-			RequestCycle.get().setResponse(response);
-			encodingBodyResponse.reset();
-			throw e;
+			// Restore original response
+			RequestCycle.get().setResponse(oldResponse);
 		}
 
-		page.endComponentRender(component);
-
-		// Restore original response
-		RequestCycle.get().setResponse(response);
-
 		response.write("<component id=\"");
 		response.write(markupId);
 		response.write("\" ");