summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/lang/ref/Reference.java7
2 files changed, 11 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index a7648b38e24..4d5c52ec368 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-19 David Daney <ddaney@avtrex.com>
+
+ * java/lang/ref/Reference.java (clear): Set referent to null and
+ synchronize.
+
2003-09-19 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/NIODatagramSocket.java,
diff --git a/libjava/java/lang/ref/Reference.java b/libjava/java/lang/ref/Reference.java
index 2f6235e3ba8..a6385a81617 100644
--- a/libjava/java/lang/ref/Reference.java
+++ b/libjava/java/lang/ref/Reference.java
@@ -176,7 +176,12 @@ public abstract class Reference
*/
public void clear()
{
- cleared = true;
+ // Must synchronize so changes are visible in finalizer thread.
+ synchronized (lock)
+ {
+ referent = null;
+ cleared = true;
+ }
}
/**
OpenPOWER on IntegriCloud