diff options
Diffstat (limited to 'java/openjdk6/files/icedtea/security/20130416/8003335.patch')
-rw-r--r-- | java/openjdk6/files/icedtea/security/20130416/8003335.patch | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/java/openjdk6/files/icedtea/security/20130416/8003335.patch b/java/openjdk6/files/icedtea/security/20130416/8003335.patch deleted file mode 100644 index ae733a018f2a..000000000000 --- a/java/openjdk6/files/icedtea/security/20130416/8003335.patch +++ /dev/null @@ -1,63 +0,0 @@ -# HG changeset patch -# User chegar -# Date 1356010827 0 -# Node ID 3c7eb39c811464c98847a4f1a167636c1db80f17 -# Parent a0e51ed355c9ae1256f8d344df34babb87a1edce -8003335: Better handling of Finalizer thread -Reviewed-by: alanb, ahgross - -diff --git a/src/share/classes/java/lang/ref/Finalizer.java b/src/share/classes/java/lang/ref/Finalizer.java ---- jdk/src/share/classes/java/lang/ref/Finalizer.java -+++ jdk/src/share/classes/java/lang/ref/Finalizer.java -@@ -38,9 +38,9 @@ - */ - static native void invokeFinalizeMethod(Object o) throws Throwable; - -- static private ReferenceQueue queue = new ReferenceQueue(); -- static private Finalizer unfinalized = null; -- static private Object lock = new Object(); -+ private static ReferenceQueue queue = new ReferenceQueue(); -+ private static Finalizer unfinalized = null; -+ private static final Object lock = new Object(); - - private Finalizer - next = null, -@@ -142,7 +142,11 @@ - /* Called by Runtime.runFinalization() */ - static void runFinalization() { - forkSecondaryFinalizer(new Runnable() { -+ private volatile boolean running; - public void run() { -+ if (running) -+ return; -+ running = true; - for (;;) { - Finalizer f = (Finalizer)queue.poll(); - if (f == null) break; -@@ -155,7 +159,11 @@ - /* Invoked by java.lang.Shutdown */ - static void runAllFinalizers() { - forkSecondaryFinalizer(new Runnable() { -+ private volatile boolean running; - public void run() { -+ if (running) -+ return; -+ running = true; - for (;;) { - Finalizer f; - synchronized (lock) { -@@ -168,10 +176,14 @@ - } - - private static class FinalizerThread extends Thread { -+ private volatile boolean running; - FinalizerThread(ThreadGroup g) { - super(g, "Finalizer"); - } - public void run() { -+ if (running) -+ return; -+ running = true; - for (;;) { - try { - Finalizer f = (Finalizer)queue.remove(); |