WICKET-4557 FilteringHeaderResponse#getContent() ignores any configured IHeaderResponseDecorator
Revert the previous change. IHeaderResponseDecorator should not be used because it may use resource filtering and this will lead to StackOverlowError between FilteringHeaderResponse#close() and FilteringHeaderResponse#getContent(String) Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7f801377 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7f801377 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7f801377 Branch: refs/heads/master Commit: 7f80137735013aad7523faf43e5305a11c030232 Parents: 7eef3be Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Wed May 16 09:06:11 2012 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Wed May 16 09:09:15 2012 +0200 ---------------------------------------------------------------------- .../head/filter/FilteringHeaderResponse.java | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/7f801377/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java index 9b05c04..81d6f66 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java @@ -21,11 +21,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.wicket.Application; import org.apache.wicket.MetaDataKey; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.head.HeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.markup.head.ResourceAggregator; import org.apache.wicket.markup.head.internal.HeaderResponse; import org.apache.wicket.markup.html.DecoratingHeaderResponse; import org.apache.wicket.request.Response; @@ -176,6 +176,7 @@ public class FilteringHeaderResponse extends DecoratingHeaderResponse // write the stuff that was actually supposed to be in the header to the // response, which is used by the built-in HtmlHeaderContainer to get // its contents + CharSequence headerContent = getContent(headerFilterName); RequestCycle.get().getResponse().write(headerContent); // must make sure our super (and with it, the wrapped response) get closed: @@ -207,14 +208,14 @@ public class FilteringHeaderResponse extends DecoratingHeaderResponse } }; - IHeaderResponse headerResponseDecorated = Application.get().decorateHeaderResponse(headerRenderer); + ResourceAggregator resourceAggregator = new ResourceAggregator(headerRenderer); for (HeaderItem curItem : resp) { - headerResponseDecorated.render(curItem); + resourceAggregator.render(curItem); } - headerRenderer.close(); + resourceAggregator.close(); return strResponse.getBuffer(); }
