United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-8000285 Deadlock between PostEventQueue.noEvents, EventQueue.isDispatchThread and SwingUtilities.invokeLater
JDK-8000285 : Deadlock between PostEventQueue.noEvents, EventQueue.isDispatchThread and SwingUtilities.invokeLater

Details
Type:
Backport
Submit Date:
2012-10-01
Status:
Closed
Updated Date:
2012-11-13
Project Name:
JDK
Resolved Date:
2012-10-02
Component:
client-libs
OS:
Sub-Component:
java.awt
CPU:
Priority:
P2
Resolution:
Fixed
Affected Versions:
7,7u4
Fixed Versions:
7u10 (b12)

Related Reports
Backport:

Sub Tasks

Description
The following deadlock has been encountered when starting NetBeans on Java 7 on Windows 7. Full thread dump is also attached to this bug report.

"Indexer Cache":
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000000d0040460> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197)
	at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
	at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
	at java.awt.EventQueue.isDispatchThreadImpl(EventQueue.java:989)
	at java.awt.EventQueue.isDispatchThread(EventQueue.java:984)
	at javax.swing.SwingUtilities.isEventDispatchThread(SwingUtilities.java:1359)
	at org.netbeans.modules.maven.j2ee.web.WebCopyOnSave$FileListenerImpl.fileChanged(WebCopyOnSave.java:154)
	at org.openide.filesystems.FCLSupport$DispatchEventWrapper.dispatchEventImpl(FCLSupport.java:145)
	at org.openide.filesystems.FCLSupport$DispatchEventWrapper.dispatchEvent(FCLSupport.java:128)
	at org.openide.filesystems.FCLSupport.dispatchEvent(FCLSupport.java:105)
	at org.openide.filesystems.FileObject$ED.dispatch(FileObject.java:1280)
	at org.openide.filesystems.FileSystem$EventDispatcher.run(FileSystem.java:997)
	at org.openide.filesystems.EventControl.dispatchEvent(EventControl.java:84)
	at org.openide.filesystems.FileSystem.dispatchEvent(FileSystem.java:642)
	at org.openide.filesystems.FileObject.dispatchEvent(FileObject.java:564)
	at org.openide.filesystems.FileObject.fireFileChangedEvent(FileObject.java:532)
	at org.netbeans.modules.masterfs.filebasedfs.fileobjects.BaseFileObj.fireFileChangedEvent(BaseFileObj.java:672)
	at org.netbeans.modules.masterfs.filebasedfs.fileobjects.FileObj$1.close(FileObj.java:137)
	at java.io.FilterOutputStream.close(FilterOutputStream.java:160)
	at org.openide.filesystems.FileObject$1.close(FileObject.java:747)
	at org.netbeans.modules.parsing.impl.indexing.IndexerCache.writeLastKnownIndexers(IndexerCache.java:618)
	at org.netbeans.modules.parsing.impl.indexing.IndexerCache.getData(IndexerCache.java:428)
	- locked <0x00000000d0c7ccd0> (a org.netbeans.modules.parsing.impl.indexing.IndexerCache$1)
	at org.netbeans.modules.parsing.impl.indexing.IndexerCache.access$400(IndexerCache.java:88)
	at org.netbeans.modules.parsing.impl.indexing.IndexerCache$3.run(IndexerCache.java:455)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1452)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2032)
"AWT-EventQueue-1":
	at sun.awt.PostEventQueue.noEvents(SunToolkit.java:2104)
	- waiting to lock <0x00000000d048a490> (a sun.awt.PostEventQueue)
	at sun.awt.SunToolkit.isPostEventQueueEmpty(SunToolkit.java:577)
	at java.awt.EventQueue.detachDispatchThread(EventQueue.java:1048)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:103)
"TimerQueue":
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000000d0040460> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197)
	at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
	at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
	at java.awt.EventQueue.postEventPrivate(EventQueue.java:235)
	at java.awt.EventQueue.postEvent(EventQueue.java:221)
	at sun.awt.PostEventQueue.flush(SunToolkit.java:2116)
	- locked <0x00000000d048a490> (a sun.awt.PostEventQueue)
	at sun.awt.SunToolkit.flushPendingEvents(SunToolkit.java:563)
	at java.awt.EventQueue.postEvent(EventQueue.java:220)
	at java.awt.EventQueue.invokeLater(EventQueue.java:1188)
	at javax.swing.SwingUtilities.invokeLater(SwingUtilities.java:1287)
	at javax.swing.Timer$1.run(Timer.java:613)
	at javax.swing.Timer$1.run(Timer.java:611)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.swing.Timer.post(Timer.java:611)
	at javax.swing.TimerQueue.run(TimerQueue.java:181)
	at java.lang.Thread.run(Thread.java:722)

Found 1 deadlock.

Original NetBeans bug:
http://netbeans.org/bugzilla/show_bug.cgi?id=213926

                                    

Comments
Changeset: b5b35ef6e048
Author:    bagiras
Date:      2012-10-02 12:54 +0400
URL:       http://closedjdk.us.oracle.com/jdk7u/jdk7u10-dev/jdk/rev/b5b35ef6e048
                                     
2012-10-02
Tests for deadlocks are unstable. OK not to have one.
                                     
2012-11-13



Hardware and Software, Engineered to Work Together