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 2012/05/21 14:41:54 UTC
git commit: WICKET-4566 Resource filtering breaks the calculation of
rendered resources
Updated Branches:
refs/heads/master 42316f152 -> ab83f83e6
WICKET-4566 Resource filtering breaks the calculation of rendered resources
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ab83f83e
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ab83f83e
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ab83f83e
Branch: refs/heads/master
Commit: ab83f83e6cccc604e26ef9373af86d3e92bd0eae
Parents: 42316f1
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon May 21 15:41:23 2012 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon May 21 15:41:23 2012 +0300
----------------------------------------------------------------------
.../markup/head/internal/HeaderResponse.java | 26 ++++++++++++++-
1 files changed, 25 insertions(+), 1 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/ab83f83e/wicket-core/src/main/java/org/apache/wicket/markup/head/internal/HeaderResponse.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/internal/HeaderResponse.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/internal/HeaderResponse.java
index b6a5a12..1cc3698 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/internal/HeaderResponse.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/internal/HeaderResponse.java
@@ -19,9 +19,11 @@ package org.apache.wicket.markup.head.internal;
import java.util.HashSet;
import java.util.Set;
+import org.apache.wicket.MetaDataKey;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.request.Response;
+import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.response.NullResponse;
@@ -33,7 +35,12 @@ import org.apache.wicket.response.NullResponse;
*/
public abstract class HeaderResponse implements IHeaderResponse
{
- private final Set<Object> rendered = new HashSet<Object>();
+ /**
+ * A key used to keep the set of rendered resources in the request cycle's meta data
+ */
+ private static final MetaDataKey<Set<Object>> RENDERED_RESOURCES = new MetaDataKey<Set<Object>>()
+ {
+ };
private boolean closed;
@@ -43,6 +50,7 @@ public abstract class HeaderResponse implements IHeaderResponse
@Override
public final void markRendered(Object object)
{
+ Set<Object> rendered = getRenderedResources();
rendered.add(object);
}
@@ -80,6 +88,7 @@ public abstract class HeaderResponse implements IHeaderResponse
@Override
public final boolean wasRendered(Object object)
{
+ Set<Object> rendered = getRenderedResources();
return rendered.contains(object);
}
@@ -118,4 +127,19 @@ public abstract class HeaderResponse implements IHeaderResponse
* @return Response
*/
protected abstract Response getRealResponse();
+
+ /**
+ * @return the set of rendered resources per request cycle
+ */
+ private Set<Object> getRenderedResources()
+ {
+ RequestCycle requestCycle = RequestCycle.get();
+ Set<Object> rendered = requestCycle.getMetaData(RENDERED_RESOURCES);
+ if (rendered == null)
+ {
+ rendered = new HashSet<Object>();
+ requestCycle.setMetaData(RENDERED_RESOURCES, rendered);
+ }
+ return rendered;
+ }
}