jglick      2005/03/29 13:46:36

  Modified:    src/main/org/apache/tools/ant Project.java
  Log:
  Avoid hypothetical memory leak by not holding a strong reference to the 
thread or thread groups used as keys to
  report task associations.
  
  Revision  Changes    Path
  1.190     +7 -4      ant/src/main/org/apache/tools/ant/Project.java
  
  Index: Project.java
  ===================================================================
  RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/Project.java,v
  retrieving revision 1.189
  retrieving revision 1.190
  diff -u -r1.189 -r1.190
  --- Project.java      29 Mar 2005 19:56:15 -0000      1.189
  +++ Project.java      29 Mar 2005 21:46:36 -0000      1.190
  @@ -23,6 +23,7 @@
   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.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 @@
        */
       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/*<Thread,Task>*/ 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/*<ThreadGroup,Task>*/ threadGroupTasks = 
Collections.synchronizedMap(new WeakHashMap());
   
       /**
        * Called to handle any input requests.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to