From 9c29344dc2caf821f91931b65ee581b0ef5bb8f5 Mon Sep 17 00:00:00 2001 From: "Jesse N. Glick" Date: Tue, 29 Mar 2005 21:46:36 +0000 Subject: [PATCH] Avoid hypothetical memory leak by not holding a strong reference to the thread or thread groups used as keys to report task associations. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278077 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/Project.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/org/apache/tools/ant/Project.java b/src/main/org/apache/tools/ant/Project.java index 15a1e23e1..d9eae6387 100644 --- a/src/main/org/apache/tools/ant/Project.java +++ b/src/main/org/apache/tools/ant/Project.java @@ -23,6 +23,7 @@ import java.io.EOFException; import java.io.InputStream; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.util.Collections; import java.util.Enumeration; import java.util.Hashtable; import java.util.Iterator; @@ -31,6 +32,8 @@ import java.util.Stack; import java.util.Vector; import java.util.Set; import java.util.HashSet; +import java.util.Map; +import java.util.WeakHashMap; import org.apache.tools.ant.input.DefaultInputHandler; import org.apache.tools.ant.input.InputHandler; import org.apache.tools.ant.helper.DefaultExecutor; @@ -157,11 +160,11 @@ public class Project { */ private ClassLoader coreLoader = null; - /** Records the latest task to be executed on a thread (Thread to Task). */ - private Hashtable threadTasks = new Hashtable(); + /** Records the latest task to be executed on a thread. */ + private Map/**/ threadTasks = Collections.synchronizedMap(new WeakHashMap()); - /** Records the latest task to be executed on a thread Group. */ - private Hashtable threadGroupTasks = new Hashtable(); + /** Records the latest task to be executed on a thread group. */ + private Map/**/ threadGroupTasks = Collections.synchronizedMap(new WeakHashMap()); /** * Called to handle any input requests.