Patch: FYI: classpath merges

Tom Tromey tromey@redhat.com
Wed Aug 27 00:00:00 GMT 2003


I'm checking this in on the trunk.

This is a few more Classpath merges.

Tom

Index: ChangeLog
from  Tom Tromey  <tromey@redhat.com>

	* java/lang/StrictMath.java: Typo fix.
	* java/lang/Math.java: Typo fix.

2003-08-26  Stephen Crawley  <crawley@dstc.edu.au>

	* java/lang/ThreadGroup.java (removeThread): null the 'group' field
	of the removed Thread.

2003-08-26  Mark Wielaard  <mark@klomp.org>

	Reported by David Holmes <dholmes@dltech.com.au>.
	* java/lang/InheritableThreadLocal.java (threadMap): Wrap inside
	Collections.synchronizedMap.
	* java/lang/ThreadLocal.java (valueMap): Likewise.

Index: java/lang/InheritableThreadLocal.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/InheritableThreadLocal.java,v
retrieving revision 1.3
diff -u -r1.3 InheritableThreadLocal.java
--- java/lang/InheritableThreadLocal.java 15 Jun 2002 19:45:31 -0000 1.3
+++ java/lang/InheritableThreadLocal.java 26 Aug 2003 23:12:22 -0000
@@ -1,5 +1,5 @@
 /* InheritableThreadLocal -- a ThreadLocal which inherits values across threads
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -37,9 +37,11 @@
 
 package java.lang;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.ArrayList;
+import java.util.Map;
 import java.util.WeakHashMap;
 
 /**
@@ -67,7 +69,8 @@
    * List can be collected, too. Maps to a list in case the user overrides
    * equals.
    */
-  private static final WeakHashMap threadMap = new WeakHashMap();
+  private static final Map threadMap
+	  = Collections.synchronizedMap(new WeakHashMap());
 
   /**
    * Creates a new InheritableThreadLocal that has no values associated
@@ -77,7 +80,7 @@
   {
     Thread currentThread = Thread.currentThread();
     // Note that we don't have to synchronize, as only this thread will
-    // ever modify the returned heritage.
+    // ever modify the returned heritage and threadMap is a synchronizedMap.
     List heritage = (List) threadMap.get(currentThread);
     if (heritage == null)
       {
@@ -114,7 +117,7 @@
     // The currentThread is the parent of the new thread.
     Thread parentThread = Thread.currentThread();
     // Note that we don't have to synchronize, as only this thread will
-    // ever modify the returned heritage.
+    // ever modify the returned heritage and threadMap is a synchronizedMap. 
     ArrayList heritage = (ArrayList) threadMap.get(parentThread);
     if (heritage != null)
       {
Index: java/lang/Math.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/Math.java,v
retrieving revision 1.5
diff -u -r1.5 Math.java
--- java/lang/Math.java 15 Feb 2002 03:21:47 -0000 1.5
+++ java/lang/Math.java 26 Aug 2003 23:12:22 -0000
@@ -1,5 +1,5 @@
 /* java.lang.Math -- common mathematical functions, native allowed
-   Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -521,7 +521,7 @@
    * double to <code>x / y</code> (ties go to the even n); for a zero
    * remainder, the sign is that of <code>x</code>. If either argument is NaN,
    * the first argument is infinite, or the second argument is zero, the result
-   * is NaN; if x is finite but y is infinte, the result is x. This is
+   * is NaN; if x is finite but y is infinite, the result is x. This is
    * accurate within the limits of doubles.
    *
    * @param x the dividend (the top half)
Index: java/lang/StrictMath.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/StrictMath.java,v
retrieving revision 1.1
diff -u -r1.1 StrictMath.java
--- java/lang/StrictMath.java 15 Feb 2002 03:21:47 -0000 1.1
+++ java/lang/StrictMath.java 26 Aug 2003 23:12:23 -0000
@@ -1,5 +1,5 @@
 /* java.lang.StrictMath -- common mathematical functions, strict Java
-   Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -1053,7 +1053,7 @@
    * double to <code>x / y</code> (ties go to the even n); for a zero
    * remainder, the sign is that of <code>x</code>. If either argument is NaN,
    * the first argument is infinite, or the second argument is zero, the result
-   * is NaN; if x is finite but y is infinte, the result is x.
+   * is NaN; if x is finite but y is infinite, the result is x.
    *
    * @param x the dividend (the top half)
    * @param y the divisor (the bottom half)
Index: java/lang/ThreadGroup.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/ThreadGroup.java,v
retrieving revision 1.16
diff -u -r1.16 ThreadGroup.java
--- java/lang/ThreadGroup.java 18 Jun 2002 15:39:39 -0000 1.16
+++ java/lang/ThreadGroup.java 26 Aug 2003 23:12:23 -0000
@@ -718,6 +718,7 @@
     if (groups == null)
       return;
     threads.remove(t);
+    t.group = null;
     // Daemon groups are automatically destroyed when all their threads die.
     if (daemon_flag && groups.size() == 0 && threads.size() == 0)
       {
Index: java/lang/ThreadLocal.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/ThreadLocal.java,v
retrieving revision 1.3
diff -u -r1.3 ThreadLocal.java
--- java/lang/ThreadLocal.java 15 Jun 2002 19:45:31 -0000 1.3
+++ java/lang/ThreadLocal.java 26 Aug 2003 23:12:23 -0000
@@ -1,5 +1,5 @@
 /* ThreadLocal -- a variable with a unique value per thread
-   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -37,6 +37,7 @@
 
 package java.lang;
 
+import java.util.Collections;
 import java.util.Map;
 import java.util.WeakHashMap;
 
@@ -101,7 +102,7 @@
    * <code>set(Thread, Object)</code> and <code>get(Thread)</code> methods
    * access it. Package visible for use by InheritableThreadLocal.
    */
-  final Map valueMap = new WeakHashMap();
+  final Map valueMap = Collections.synchronizedMap(new WeakHashMap());
 	
   /**
    * Creates a ThreadLocal object without associating any value to it yet.
@@ -135,7 +136,7 @@
   {
     Thread currentThread = Thread.currentThread();
     // Note that we don't have to synchronize, as only this thread will
-    // ever modify the returned value.
+    // ever modify the returned value and valueMap is a synchronizedMap.
     Object value = valueMap.get(currentThread);
     if (value == null)
       {
@@ -156,7 +157,7 @@
   public void set(Object value)
   {
     // Note that we don't have to synchronize, as only this thread will
-    // ever modify the returned value.
+    // ever modify the returned value and valueMap is a synchronizedMap.
     valueMap.put(Thread.currentThread(), value == null ? NULL : value);
   }
 }



More information about the Java-patches mailing list