Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-util/src/main/java/org/eclipse/jetty/util/component/Container.java')
-rw-r--r--jetty-util/src/main/java/org/eclipse/jetty/util/component/Container.java16
1 files changed, 8 insertions, 8 deletions
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/component/Container.java b/jetty-util/src/main/java/org/eclipse/jetty/util/component/Container.java
index 4622c6662a..0cec73d246 100644
--- a/jetty-util/src/main/java/org/eclipse/jetty/util/component/Container.java
+++ b/jetty-util/src/main/java/org/eclipse/jetty/util/component/Container.java
@@ -12,6 +12,7 @@
// ========================================================================
package org.eclipse.jetty.util.component;
+import java.lang.ref.WeakReference;
import java.util.EventListener;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -225,20 +226,19 @@ public class Container
/* ------------------------------------------------------------ */
/** A Container event.
* @see Listener
- *
*/
public static class Relationship
{
- private Object _parent;
- private Object _child;
+ private final WeakReference<Object> _parent;
+ private final WeakReference<Object> _child;
private String _relationship;
private Container _container;
private Relationship(Container container, Object parent,Object child, String relationship)
{
_container=container;
- _parent=parent;
- _child=child;
+ _parent=new WeakReference<Object>(parent);
+ _child=new WeakReference<Object>(child);
_relationship=relationship;
}
@@ -249,12 +249,12 @@ public class Container
public Object getChild()
{
- return _child;
+ return _child.get();
}
public Object getParent()
{
- return _parent;
+ return _parent.get();
}
public String getRelationship()
@@ -280,7 +280,7 @@ public class Container
if (o==null || !(o instanceof Relationship))
return false;
Relationship r = (Relationship)o;
- return r._parent==_parent && r._child==_child && r._relationship.equals(_relationship);
+ return r._parent.get()==_parent.get() && r._child.get()==_child.get() && r._relationship.equals(_relationship);
}
}

Back to the top