Mercurial > hg > openjdk > jdk8u > jdk
changeset 10638:4d95b1faad78 jdk8u45-b05
8065709: Deadlock in awt/logging apparently introduced by 8019623
Reviewed-by: ant, serb
author | mcherkas |
---|---|
date | Fri, 23 Jan 2015 01:46:07 +0400 |
parents | 71d9467e14c7 |
children | 7e4bf1e7a2fe |
files | src/share/classes/java/awt/EventQueue.java |
diffstat | 1 files changed, 18 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/java/awt/EventQueue.java Thu Apr 09 13:39:25 2015 -0700 +++ b/src/share/classes/java/awt/EventQueue.java Fri Jan 23 01:46:07 2015 +0400 @@ -182,7 +182,14 @@ private FwDispatcher fwDispatcher; - private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue"); + private static volatile PlatformLogger eventLog; + + private static final PlatformLogger getEventLog() { + if(eventLog == null) { + eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue"); + } + return eventLog; + } static { AWTAccessor.setEventQueueAccessor( @@ -759,8 +766,8 @@ dispatchThread.stopDispatching(); } } else { - if (eventLog.isLoggable(PlatformLogger.Level.FINE)) { - eventLog.fine("Unable to dispatch event: " + event); + if (getEventLog().isLoggable(PlatformLogger.Level.FINE)) { + getEventLog().fine("Unable to dispatch event: " + event); } } } @@ -857,8 +864,8 @@ * @since 1.2 */ public void push(EventQueue newEventQueue) { - if (eventLog.isLoggable(PlatformLogger.Level.FINE)) { - eventLog.fine("EventQueue.push(" + newEventQueue + ")"); + if (getEventLog().isLoggable(PlatformLogger.Level.FINE)) { + getEventLog().fine("EventQueue.push(" + newEventQueue + ")"); } pushPopLock.lock(); @@ -883,8 +890,8 @@ // Use getNextEventPrivate() as it doesn't call flushPendingEvents() newEventQueue.postEventPrivate(topQueue.getNextEventPrivate()); } catch (InterruptedException ie) { - if (eventLog.isLoggable(PlatformLogger.Level.FINE)) { - eventLog.fine("Interrupted push", ie); + if (getEventLog().isLoggable(PlatformLogger.Level.FINE)) { + getEventLog().fine("Interrupted push", ie); } } } @@ -922,8 +929,8 @@ * @since 1.2 */ protected void pop() throws EmptyStackException { - if (eventLog.isLoggable(PlatformLogger.Level.FINE)) { - eventLog.fine("EventQueue.pop(" + this + ")"); + if (getEventLog().isLoggable(PlatformLogger.Level.FINE)) { + getEventLog().fine("EventQueue.pop(" + this + ")"); } pushPopLock.lock(); @@ -945,8 +952,8 @@ try { prevQueue.postEventPrivate(topQueue.getNextEventPrivate()); } catch (InterruptedException ie) { - if (eventLog.isLoggable(PlatformLogger.Level.FINE)) { - eventLog.fine("Interrupted pop", ie); + if (getEventLog().isLoggable(PlatformLogger.Level.FINE)) { + getEventLog().fine("Interrupted pop", ie); } } }