diff options
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/8007393.patch')
-rw-r--r-- | java/openjdk6/files/icedtea/openjdk/8007393.patch | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/8007393.patch b/java/openjdk6/files/icedtea/openjdk/8007393.patch deleted file mode 100644 index 632fe1b1cf9a..000000000000 --- a/java/openjdk6/files/icedtea/openjdk/8007393.patch +++ /dev/null @@ -1,78 +0,0 @@ - -# HG changeset patch -# User coffeys -# Date 1360860659 0 -# Node ID 828b93329939ec20530ed98f42b2966b2ea53048 -# Parent cff0241d217f7b463d58ddcd0add8d41de9eb280 -8007393: Possible race condition after JDK-6664509 -Reviewed-by: mchung - ---- jdk/src/share/classes/java/util/logging/LogManager.java Tue Feb 05 23:33:50 2013 +0000 -+++ jdk/src/share/classes/java/util/logging/LogManager.java Thu Feb 14 16:50:59 2013 +0000 -@@ -411,7 +411,40 @@ public class LogManager { - } - - Logger demandSystemLogger(String name, String resourceBundleName) { -- return systemContext.demandLogger(name, resourceBundleName); -+ // Add a system logger in the system context's namespace -+ final Logger sysLogger = systemContext.demandLogger(name, resourceBundleName); -+ -+ // Add the system logger to the LogManager's namespace if not exist -+ // so that there is only one single logger of the given name. -+ // System loggers are visible to applications unless a logger of -+ // the same name has been added. -+ Logger logger; -+ do { -+ // First attempt to call addLogger instead of getLogger -+ // This would avoid potential bug in custom LogManager.getLogger -+ // implementation that adds a logger if not exists -+ if (addLogger(sysLogger)) { -+ // successfully added the new system logger -+ logger = sysLogger; -+ } else { -+ logger = getLogger(name); -+ } -+ } while (logger == null); -+ -+ // LogManager will set the sysLogger's handlers via LogManager.addLogger method. -+ if (logger != sysLogger && sysLogger.getHandlers().length == 0) { -+ // if logger already exists but handlers not set -+ final Logger l = logger; -+ AccessController.doPrivileged(new PrivilegedAction<Void>() { -+ public Void run() { -+ for (Handler hdl : l.getHandlers()) { -+ sysLogger.addHandler(hdl); -+ } -+ return null; -+ } -+ }); -+ } -+ return sysLogger; - } - - // LoggerContext maintains the logger namespace per context. -@@ -619,22 +652,7 @@ public class LogManager { - } - } while (result == null); - } -- // Add the system logger to the LogManager's namespace if not exists -- // The LogManager will set its handlers via the LogManager.addLogger method. -- if (!manager.addLogger(result) && result.getHandlers().length == 0) { -- // if logger already exists but handlers not set -- final Logger l = manager.getLogger(name); -- final Logger logger = result; -- AccessController.doPrivileged(new PrivilegedAction<Void>() { -- public Void run() { -- for (Handler hdl : l.getHandlers()) { -- logger.addHandler(hdl); -- } -- return null; -- } -- }); -- } -- return result; -+ return result; - } - } - - |