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("\" ");