summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/security/20130416/8003335.patch
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk6/files/icedtea/security/20130416/8003335.patch')
-rw-r--r--java/openjdk6/files/icedtea/security/20130416/8003335.patch63
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();