#1752 Deadlock on File - Save All with 10+ modified XML files

None
closed-fixed
Eric Le Lay
XML (11)
5
2014-04-19
2013-11-15
Alan Ezust
No

I had a lot (more than 10) XML files changed and I did a "save-all". Deadlock happens almost every time.

^\2013-11-14 16:13:14
Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.45-b08 mixed mode):

"SwingWorker-pool-1-thread-9" daemon prio=10 tid=0x00007f4278662000 nid=0x3175 in Object.wait() [0x00007f42aaf4c000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007eda8e7c8> (a java.lang.Object)
at xml.gui.InvokeAndWait.withTimeouts(InvokeAndWait.java:83)
- locked <0x00000007eda8e7c8> (a java.lang.Object)
at xml.Resolver.openEntity(Resolver.java:607)
at xml.Resolver.resolveEntity(Resolver.java:583)
at xml.parser.MyEntityResolver.resolveEntity(MyEntityResolver.java:86)
at xml.parser.SchemaAutoLoader.resolveEntity(SchemaAutoLoader.java:310)
at org.apache.xerces.util.EntityResolver2Wrapper.resolveEntity(Unknown Source)
at org.apache.xerces.xinclude.XIncludeHandler.handleIncludeElement(Unknown Source)
at org.apache.xerces.xinclude.XIncludeHandler.emptyElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
at xml.parser.SchemaAutoLoader.parse(SchemaAutoLoader.java:210)
at xml.parser.XercesParserImpl.parse(XercesParserImpl.java:229)
at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:550)
at sidekick.SideKick$ParseRequestWorker.doInBackground(SideKick.java:526)
at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at javax.swing.SwingWorker.run(SwingWorker.java:335)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"process reaper" daemon prio=10 tid=0x00007f4254002800 nid=0x3146 waiting on condition [0x00007f42aa57b000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007839bd618> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"process reaper" daemon prio=10 tid=0x00007f423c035000 nid=0x3143 waiting on condition [0x00007f42aa5c4000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007839bd618> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"process reaper" daemon prio=10 tid=0x00007f4278bb8800 nid=0x3140 waiting on condition [0x00007f42bc095000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007839bd618> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"SwingWorker-pool-1-thread-8" daemon prio=10 tid=0x00007f4278a7d000 nid=0x313c waiting on condition [0x00007f42a8b4d000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000786c2fb00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"SwingWorker-pool-1-thread-7" daemon prio=10 tid=0x00007f4278162000 nid=0x30fe waiting on condition [0x00007f42a9767000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000786c2fb00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"jEdit Worker #6" prio=10 tid=0x00007f42780ea800 nid=0x30e5 waiting on condition [0x00007f42a9969000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000783406830> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:458)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:925)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"SwingWorker-pool-1-thread-6" daemon prio=10 tid=0x00007f4278747000 nid=0x30e0 waiting on condition [0x00007f42aa7c6000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000786c2fb00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"SwingWorker-pool-1-thread-5" daemon prio=10 tid=0x00007f4278a62000 nid=0x30de waiting on condition [0x00007f42aac4a000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000786c2fb00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"SwingWorker-pool-1-thread-4" daemon prio=10 tid=0x00007f42786da000 nid=0x2a80 waiting on condition [0x00007f42aab49000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000786c2fb00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"SwingWorker-pool-1-thread-3" daemon prio=10 tid=0x00007f42787ff000 nid=0x2a7b waiting on condition [0x00007f42aad4b000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000786c2fb00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"jEdit Worker #3" prio=10 tid=0x00007f4278056800 nid=0x2a7a waiting on condition [0x00007f42aae4c000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000783406830> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:458)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:925)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"jEdit Worker #1" prio=10 tid=0x00007f42787bc800 nid=0x2a78 waiting on condition [0x00007f42ab250000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000783406830> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:458)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:925)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"jEdit Worker #0" prio=10 tid=0x00007f42787c9800 nid=0x2a77 waiting on condition [0x00007f42ab351000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000783406830> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:458)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:925)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"CC::Worker #1" daemon prio=10 tid=0x00007f42786c3000 nid=0x2a75 in Object.wait() [0x00007f42bc1ff000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000786e0b0c8> (a java.lang.Object)
at common.threads.WorkerThreadPool$WorkerThread.run(WorkerThreadPool.java:219)
- locked <0x0000000786e0b0c8> (a java.lang.Object)

"SwingWorker-pool-1-thread-2" daemon prio=10 tid=0x00007f4278661000 nid=0x2a70 waiting on condition [0x00007f42ab14f000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000786c2fb00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"jEdit server daemon [/home/ezust/.jedit/server]" daemon prio=10 tid=0x00007f427846e000 nid=0x2a6c runnable [0x00007f42ab4bd000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:530)
at java.net.ServerSocket.accept(ServerSocket.java:498)
at org.gjt.sp.jedit.EditServer.run(EditServer.java:135)

"SwingWorker-pool-1-thread-1" daemon prio=10 tid=0x00007f427844a000 nid=0x2a6b waiting on condition [0x00007f42aa4e4000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000786c2fb00> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

"DestroyJavaVM" prio=10 tid=0x00007f42c800a000 nid=0x2a4d waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Thread-1" daemon prio=10 tid=0x00007f42780a8000 nid=0x2a65 waiting on condition [0x00007f42ab647000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007859744a8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:374)
at sun.awt.X11.InfoWindow$Balloon$Displayer.run(InfoWindow.java:454)

"TimerQueue" daemon prio=10 tid=0x00007f42c8437000 nid=0x2a61 waiting on condition [0x00007f42ab748000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000078588a7e0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:220)
at javax.swing.TimerQueue.run(TimerQueue.java:171)
at java.lang.Thread.run(Thread.java:744)

"AWT-EventQueue-0" prio=10 tid=0x00007f42c83b1800 nid=0x2a5e waiting on condition [0x00007f42ab848000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007fcd4d1a8> (a java.util.concurrent.locks.ReentrantReadWriteLock$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.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:945)
at org.gjt.sp.jedit.buffer.JEditBuffer.writeLock(JEditBuffer.java:282)
at org.gjt.sp.jedit.Buffer.finishSaving(Buffer.java:2159)
at org.gjt.sp.jedit.Buffer.access$800(Buffer.java:97)
at org.gjt.sp.jedit.Buffer$2.run(Buffer.java:618)
at org.gjt.sp.util.AwtRunnableQueue$RunRequestsInAWTThread.doAWTRequest(AwtRunnableQueue.java:158)
at org.gjt.sp.util.AwtRunnableQueue$RunRequestsInAWTThread.run(AwtRunnableQueue.java:137)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

"AWT-Shutdown" prio=10 tid=0x00007f42c83af000 nid=0x2a5d in Object.wait() [0x00007f42ab94a000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007839bd038> (a java.lang.Object)
at java.lang.Object.wait(Object.java:503)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
- locked <0x00000007839bd038> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:744)

"AWT-XAWT" daemon prio=10 tid=0x00007f42c82bc000 nid=0x2a5b runnable [0x00007f42bc99c000]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:627)
at sun.awt.X11.XToolkit.run(XToolkit.java:591)
at java.lang.Thread.run(Thread.java:744)

"Java2D Disposer" daemon prio=10 tid=0x00007f42c8290000 nid=0x2a5a in Object.wait() [0x00007f42bcead000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000078588bdb0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x000000078588bdb0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at sun.java2d.Disposer.run(Disposer.java:145)
at java.lang.Thread.run(Thread.java:744)

"Service Thread" daemon prio=10 tid=0x00007f42c815e000 nid=0x2a58 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x00007f42c815b800 nid=0x2a57 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x00007f42c8158800 nid=0x2a56 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007f42c814e800 nid=0x2a55 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007f42c8137000 nid=0x2a54 in Object.wait() [0x00007f42bee32000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007839cf150> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000007839cf150> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:189)

"Reference Handler" daemon prio=10 tid=0x00007f42c8133000 nid=0x2a53 in Object.wait() [0x00007f42bef33000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007839ceca8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0x00000007839ceca8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00007f42c8130800 nid=0x2a52 runnable

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f42c801f800 nid=0x2a4e runnable

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f42c8021800 nid=0x2a4f runnable

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f42c8023800 nid=0x2a50 runnable

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f42c8025800 nid=0x2a51 runnable

"VM Periodic Task Thread" prio=10 tid=0x00007f42c8168800 nid=0x2a59 waiting on condition

JNI global references: 1190

Heap
PSYoungGen total 650752K, used 488766K [0x00000007d6600000, 0x0000000800000000, 0x0000000800000000)
eden space 624128K, 76% used [0x00000007d6600000,0x00000007f35bfe98,0x00000007fc780000)
from space 26624K, 52% used [0x00000007fc780000,0x00000007fd50fc20,0x00000007fe180000)
to space 27648K, 0% used [0x00000007fe500000,0x00000007fe500000,0x0000000800000000)
ParOldGen total 133632K, used 70793K [0x0000000783200000, 0x000000078b480000, 0x00000007d6600000)
object space 133632K, 52% used [0x0000000783200000,0x0000000787722508,0x000000078b480000)
PSPermGen total 73216K, used 43628K [0x000000077e000000, 0x0000000782780000, 0x0000000783200000)
object space 73216K, 59% used [0x000000077e000000,0x0000000780a9b3c0,0x0000000782780000)

Quit (core dumped)

Discussion

  • Eric Le Lay
    Eric Le Lay
    2013-11-16

    Hi Alan,
    do you get a hard freeze or a freeze then unfreeze after 5s ?
    The later should be the case, since SwingWorker-pool-1-thread-9
    is waiting for a lock with timeout 5s.
    At any rate it is not holding any readlock that I'm aware of.
    There is now only 1 readlock in XML plugin and it's used inside the EDT (xml/Resolver.java:617) and released before exiting the EDT.

    I don't understand why the AWT-EventQueue-0 is blocked either.

    By the way, I committed a fix for a deadlock (with timeout 5s) in r23070 that you don't seem to have.
    But it was only when InvokeAndWait.withTimeouts was called from the EDT, which is not the case here.

    Any insight appreciated...

    You have set Sidekick to parse on save, I guess. And some of your files use xinclude, like the user guide ?
    I've opened every file in the user-guide (27) and made them dirty by inserting-removing a space.
    I then hit Ctrl-E-S to save all. After 1s everything was saved and jEdit was responsive (caret blinking).

     
  • Eric Le Lay
    Eric Le Lay
    2014-04-18

    • status: open --> pending-works-for-me
    • Group: -->
     
  • Eric Le Lay
    Eric Le Lay
    2014-04-18

    Could not reproduce it and now the fix for the other deadlock mentioned in comments has been released.
    I'd like to close this bug.

     
  • Alan Ezust
    Alan Ezust
    2014-04-19

    • status: pending-works-for-me --> closed-fixed
     
  • Alan Ezust
    Alan Ezust
    2014-04-19

    i can't reproduce this in XML 2.8.7. I say it is fixed!