codebling / Atros

**THIS PROJECT IS NO LONGER MAINTAINED.** Atros is a log viewer. It's geared towards the Java logging frameworks (http://en.wikipedia.org/wiki/Java_logging_framework), but should be able to parse most logs. Atros uses VFS2, which helps to abstract access to remote files, so that you can tail files on remote servers with ease. It is a fork of Otros Log Viewer (http://code.google.com/p/otroslogviewer/) with a few new features. 'Atros' is a homophone of the French word 'atroce', meaning 'atrocious'.
0 stars 0 forks source link

UI occasionally hangs #8

Open codebling opened 12 years ago

codebling commented 12 years ago

Full thread dump

"BufferingLogDataCollectorProxy@3" daemon prio=6 tid=0x24 nid=NA waiting for monitor entry java.lang.Thread.State: BLOCKED blocks AWT-EventQueue-0@12 blocks Log reader-file:///C:/cc/nm_mailgtw/_output/platform/dev/work/emgtw.log@4 waiting for AWT-EventQueue-0@12 to release lock on <0x19> (a java.awt.Component$AWTTreeLock) at java.awt.Component.setFont(Component.java:1872) at java.awt.Container.setFont(Container.java:1743) at javax.swing.JComponent.setFont(JComponent.java:2751) at javax.swing.border.TitledBorder.getLabel(TitledBorder.java:712) at javax.swing.border.TitledBorder.getBorderInsets(TitledBorder.java:354) at javax.swing.border.AbstractBorder.getBorderInsets(AbstractBorder.java:74) at javax.swing.JComponent.getInsets(JComponent.java:1824) at javax.swing.plaf.basic.BasicTextUI.getVisibleEditorRect(BasicTextUI.java:1000) at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.insertUpdate(BasicTextUI.java:1862) at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:202) at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:749) at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:708) at pl.otros.logview.gui.MessageDetailListener.updateInfo(MessageDetailListener.java:204)

"AWT-EventQueue-0@12" prio=6 tid=0x11 nid=NA waiting for monitor entry java.lang.Thread.State: BLOCKED blocks BufferingLogDataCollectorProxy@3 waiting for BufferingLogDataCollectorProxy@3 to release lock on <0x17> (a javax.swing.text.DefaultStyledDocument) at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1381) at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:910) at javax.swing.JComponent.getPreferredSize(JComponent.java:1660) at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1332) at java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:719)

"Swing-Shell@5" daemon prio=6 tid=0x1b nid=NA waiting java.lang.Thread.State: WAITING at sun.misc.Unsafe.park(Unsafe.java:-1) 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:1043) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at sun.awt.shell.Win32ShellFolderManager2$ComInvoker$3.run(Win32ShellFolderManager2.java:502) at java.lang.Thread.run(Thread.java:722)

"TimerQueue@11" daemon prio=5 tid=0x12 nid=NA waiting java.lang.Thread.State: WAITING at sun.misc.Unsafe.park(Unsafe.java:-1) 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.DelayQueue.take(DelayQueue.java:209) at javax.swing.TimerQueue.run(TimerQueue.java:171) at java.lang.Thread.run(Thread.java:722)

"Log reader-file:///C:/cc/nm_mailgtw/_output/platform/dev/work/emgtw.log@4" daemon prio=6 tid=0x23 nid=NA waiting for monitor entry java.lang.Thread.State: BLOCKED waiting for BufferingLogDataCollectorProxy@3 to release lock on <0x18> (a pl.otros.logview.BufferingLogDataCollectorProxy) at pl.otros.logview.BufferingLogDataCollectorProxy.add(BufferingLogDataCollectorProxy.java:67) at pl.otros.logview.importer.LogImporterUsingParser.importLogs(LogImporterUsingParser.java:94) at pl.otros.logview.gui.actions.TailLogActionListener$1.run(TailLogActionListener.java:117) at java.lang.Thread.run(Thread.java:722)

"Trident callback thread@9" daemon prio=6 tid=0x14 nid=NA waiting java.lang.Thread.State: WAITING at sun.misc.Unsafe.park(Unsafe.java:-1) 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 org.pushingpixels.trident.TimelineEngine$TimelineCallbackThread.run(TimelineEngine.java:214)

"D3D Screen Updater@7" daemon prio=7 tid=0x18 nid=NA waiting java.lang.Thread.State: WAITING at java.lang.Object.wait(Object.java:-1) at sun.java2d.d3d.D3DScreenUpdateManager.run(D3DScreenUpdateManager.java:436) at java.lang.Thread.run(Thread.java:722)

"Trident pulse source thread@8" daemon prio=6 tid=0x15 nid=NA sleeping java.lang.Thread.State: TIMED_WAITING at java.lang.Thread.sleep(Thread.java:-1) at org.pushingpixels.trident.TridentConfig$FixedRatePulseSource.waitUntilNextPulse(TridentConfig.java:64) at org.pushingpixels.trident.TimelineEngine$TridentAnimationThread.run(TimelineEngine.java:190)

"MemoryUsedUpdater@10" prio=6 tid=0x13 nid=NA sleeping java.lang.Thread.State: TIMED_WAITING at java.lang.Thread.sleep(Thread.java:-1) at pl.otros.logview.gui.MemoryUsedStatsUpdater.run(MemoryUsedStatsUpdater.java:89) at java.lang.Thread.run(Thread.java:722)

"AWT-Windows@13" daemon prio=6 tid=0xf nid=NA runnable java.lang.Thread.State: RUNNABLE at sun.awt.windows.WToolkit.eventLoop(WToolkit.java:-1) at sun.awt.windows.WToolkit.run(WToolkit.java:299) at java.lang.Thread.run(Thread.java:722)

"AWT-Shutdown@14" prio=5 tid=0xe nid=NA waiting java.lang.Thread.State: WAITING at java.lang.Object.wait(Object.java:-1) at java.lang.Object.wait(Object.java:503) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287) at java.lang.Thread.run(Thread.java:722)

"Java2D Disposer@15" daemon prio=10 tid=0xc nid=NA waiting java.lang.Thread.State: WAITING at java.lang.Object.wait(Object.java:-1) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) at sun.java2d.Disposer.run(Disposer.java:145) at java.lang.Thread.run(Thread.java:722)

"Finalizer@18" daemon prio=8 tid=0x3 nid=NA waiting java.lang.Thread.State: WAITING at java.lang.Object.wait(Object.java:-1) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)

"Reference Handler@19" daemon prio=10 tid=0x2 nid=NA waiting java.lang.Thread.State: WAITING at java.lang.Object.wait(Object.java:-1) at java.lang.Object.wait(Object.java:503) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)

"DestroyJavaVM@6" prio=5 tid=0x19 nid=NA runnable java.lang.Thread.State: RUNNABLE

"Attach Listener@16" daemon prio=5 tid=0x5 nid=NA runnable java.lang.Thread.State: RUNNABLE

"Signal Dispatcher@17" daemon prio=9 tid=0x4 nid=NA runnable java.lang.Thread.State: RUNNABLE

codebling commented 12 years ago

== Normal state for these 2 threads:

"BufferingLogDataCollectorProxy" daemon prio=6 tid=0x000000000a1c8000 nid=0x1ec4 waiting on condition [0x000000000f04f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at pl.otros.logview.BufferingLogDataCollectorProxy$1.run(BufferingLogDataCollectorProxy.java:52) at java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

"Log reader-file:///C:/cc/nm_mailgtw/_output/platform/dev/work/emgtw.log" daemon prio=6 tid=0x000000000a1c7000 nid=0x1b9c waiting on condition [0x0000000011a9f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at pl.otros.logview.gui.actions.TailLogActionListener$1.run(TailLogActionListener.java:118) at java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

== when UI is frozen

"BufferingLogDataCollectorProxy" daemon prio=6 tid=0x000000000a1c8000 nid=0x1ec4 waiting for monitor entry [0x000000000f04e000] java.lang.Thread.State: BLOCKED (on object monitor) at java.awt.Component.setFont(Component.java:1874)

"Log reader-file:///C:/cc/nm_mailgtw/_output/platform/dev/work/emgtw.log" daemon prio=6 tid=0x000000000a1c7000 nid=0x1b9c waiting for monitor entry [0x0000000011a9f000] java.lang.Thread.State: BLOCKED (on object monitor) at pl.otros.logview.BufferingLogDataCollectorProxy.add(BufferingLogDataCollectorProxy.java:67)

== full thread dump while operating correctly

2012-02-02 14:15:32 Full thread dump Java HotSpot(TM) 64-Bit Server VM (22.0-b10 mixed mode):

"RMI TCP Connection(idle)" daemon prio=6 tid=0x000000000a1ca000 nid=0x9e8 waiting on condition [0x000000001413f000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"JMX server connection timeout 149" daemon prio=6 tid=0x000000000a1c9000 nid=0x1620 in Object.wait() [0x0000000013f6e000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"RMI Scheduler(0)" daemon prio=6 tid=0x000000000a1c8800 nid=0x1ea0 waiting on condition [0x0000000013a6e000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"RMI TCP Connection(1)-10.222.10.131" daemon prio=6 tid=0x000000000a1c6800 nid=0x1b60 runnable [0x0000000013d1e000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:150) at java.net.SocketInputStream.read(SocketInputStream.java:121) at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) at java.io.BufferedInputStream.read(BufferedInputStream.java:254)

"RMI TCP Accept-0" daemon prio=6 tid=0x000000000a1c5800 nid=0x18d4 runnable [0x0000000013b6f000] java.lang.Thread.State: RUNNABLE at java.net.DualStackPlainSocketImpl.accept0(Native Method) at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:121) at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:183)

"BufferingLogDataCollectorProxy" daemon prio=6 tid=0x000000000a1c8000 nid=0x1ec4 waiting on condition [0x000000000f04f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at pl.otros.logview.BufferingLogDataCollectorProxy$1.run(BufferingLogDataCollectorProxy.java:52) at java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

"Log reader-file:///C:/cc/nm_mailgtw/_output/platform/dev/work/emgtw.log" daemon prio=6 tid=0x000000000a1c7000 nid=0x1b9c waiting on condition [0x0000000011a9f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at pl.otros.logview.gui.actions.TailLogActionListener$1.run(TailLogActionListener.java:118) at java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

"Swing-Shell" daemon prio=6 tid=0x00000000094aa000 nid=0x11f8 waiting on condition [0x0000000010d0e000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"DestroyJavaVM" prio=6 tid=0x000000000233c000 nid=0x181c waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"D3D Screen Updater" daemon prio=8 tid=0x0000000008fa7800 nid=0x1ed8 in Object.wait() [0x000000000f34f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"Trident pulse source thread" daemon prio=6 tid=0x000000000a2bd800 nid=0x1ebc waiting on condition [0x000000000e29f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.pushingpixels.trident.TridentConfig$FixedRatePulseSource.waitUntilNextPulse(TridentConfig.java:64) at org.pushingpixels.trident.TimelineEngine$TridentAnimationThread.run(TimelineEngine.java:190)

Locked ownable synchronizers:

"Trident callback thread" daemon prio=6 tid=0x000000000966b800 nid=0x1ca4 waiting on condition [0x000000000e18f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"MemoryUsedUpdater" prio=6 tid=0x00000000096c4000 nid=0x254 waiting on condition [0x000000000dd7f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at pl.otros.logview.gui.MemoryUsedStatsUpdater.run(MemoryUsedStatsUpdater.java:89) at java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

"TimerQueue" daemon prio=6 tid=0x00000000096c3800 nid=0x22c8 waiting on condition [0x000000000df1e000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"AWT-EventQueue-0" prio=6 tid=0x000000000957d000 nid=0x1f5c waiting on condition [0x000000000b0ef000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"AWT-Windows" daemon prio=6 tid=0x000000000905f000 nid=0x2338 runnable [0x0000000009d8f000] java.lang.Thread.State: RUNNABLE at sun.awt.windows.WToolkit.eventLoop(Native Method) at sun.awt.windows.WToolkit.run(WToolkit.java:299) at java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

"AWT-Shutdown" prio=6 tid=0x0000000008fcc000 nid=0x1d8c in Object.wait() [0x000000000886f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"Java2D Disposer" daemon prio=10 tid=0x0000000008eb6000 nid=0x1cec in Object.wait() [0x000000000927f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"Service Thread" daemon prio=6 tid=0x0000000006a7b800 nid=0x1b8c runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

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

Locked ownable synchronizers:

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

Locked ownable synchronizers:

"JDWP Event Helper Thread" daemon prio=6 tid=0x0000000006a66800 nid=0x1e98 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"JDWP Transport Listener: dt_socket" daemon prio=6 tid=0x0000000006a60800 nid=0xaa8 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"Attach Listener" daemon prio=10 tid=0x0000000006a4d000 nid=0x19d0 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"Signal Dispatcher" daemon prio=10 tid=0x0000000006a4c000 nid=0x1f54 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"Finalizer" daemon prio=8 tid=0x00000000069c9000 nid=0x23b4 in Object.wait() [0x0000000007f9f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"Reference Handler" daemon prio=10 tid=0x00000000069be800 nid=0xbe0 in Object.wait() [0x0000000007cff000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"VM Thread" prio=10 tid=0x00000000069b5800 nid=0x1a74 runnable

"GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000002249000 nid=0x2024 runnable

"GC task thread#1 (ParallelGC)" prio=6 tid=0x000000000224a000 nid=0x1130 runnable

"GC task thread#2 (ParallelGC)" prio=6 tid=0x000000000224b000 nid=0xdc8 runnable

"GC task thread#3 (ParallelGC)" prio=6 tid=0x000000000224c800 nid=0x2054 runnable

"GC task thread#4 (ParallelGC)" prio=6 tid=0x000000000224e000 nid=0xb9c runnable

"GC task thread#5 (ParallelGC)" prio=6 tid=0x0000000002251000 nid=0x2348 runnable

"GC task thread#6 (ParallelGC)" prio=6 tid=0x0000000002252800 nid=0xe90 runnable

"GC task thread#7 (ParallelGC)" prio=6 tid=0x0000000002253800 nid=0xb40 runnable

"VM Periodic Task Thread" prio=10 tid=0x0000000006a8e000 nid=0xfa8 waiting on condition

JNI global references: 4944

== full thread dump while UI is hung

2012-02-02 14:18:57 Full thread dump Java HotSpot(TM) 64-Bit Server VM (22.0-b10 mixed mode):

"RMI TCP Connection(3)-10.222.10.131" daemon prio=6 tid=0x000000000a1ca000 nid=0x1cdc runnable [0x000000000dc4f000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:150) at java.net.SocketInputStream.read(SocketInputStream.java:121) at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) at java.io.BufferedInputStream.read(BufferedInputStream.java:254)

"JMX server connection timeout 149" daemon prio=6 tid=0x000000000a1c9000 nid=0x1620 in Object.wait() [0x0000000013f6e000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"RMI Scheduler(0)" daemon prio=6 tid=0x000000000a1c8800 nid=0x1ea0 waiting on condition [0x0000000013a6e000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"RMI TCP Connection(idle)" daemon prio=6 tid=0x000000000a1c6800 nid=0x1b60 waiting on condition [0x0000000013d1f000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"RMI TCP Accept-0" daemon prio=6 tid=0x000000000a1c5800 nid=0x18d4 runnable [0x0000000013b6f000] java.lang.Thread.State: RUNNABLE at java.net.DualStackPlainSocketImpl.accept0(Native Method) at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:121) at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:183)

"BufferingLogDataCollectorProxy" daemon prio=6 tid=0x000000000a1c8000 nid=0x1ec4 waiting for monitor entry [0x000000000f04e000] java.lang.Thread.State: BLOCKED (on object monitor) at java.awt.Component.setFont(Component.java:1874)

"Log reader-file:///C:/cc/nm_mailgtw/_output/platform/dev/work/emgtw.log" daemon prio=6 tid=0x000000000a1c7000 nid=0x1b9c waiting for monitor entry [0x0000000011a9f000] java.lang.Thread.State: BLOCKED (on object monitor) at pl.otros.logview.BufferingLogDataCollectorProxy.add(BufferingLogDataCollectorProxy.java:67)

"Swing-Shell" daemon prio=6 tid=0x00000000094aa000 nid=0x11f8 waiting on condition [0x0000000010d0e000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"DestroyJavaVM" prio=6 tid=0x000000000233c000 nid=0x181c waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"D3D Screen Updater" daemon prio=8 tid=0x0000000008fa7800 nid=0x1ed8 in Object.wait() [0x000000000f34f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"Trident pulse source thread" daemon prio=6 tid=0x000000000a2bd800 nid=0x1ebc waiting on condition [0x000000000e29f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.pushingpixels.trident.TridentConfig$FixedRatePulseSource.waitUntilNextPulse(TridentConfig.java:64) at org.pushingpixels.trident.TimelineEngine$TridentAnimationThread.run(TimelineEngine.java:190)

Locked ownable synchronizers:

"Trident callback thread" daemon prio=6 tid=0x000000000966b800 nid=0x1ca4 waiting on condition [0x000000000e18f000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"MemoryUsedUpdater" prio=6 tid=0x00000000096c4000 nid=0x254 waiting on condition [0x000000000dd7f000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at pl.otros.logview.gui.MemoryUsedStatsUpdater.run(MemoryUsedStatsUpdater.java:89) at java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

"TimerQueue" daemon prio=6 tid=0x00000000096c3800 nid=0x22c8 waiting on condition [0x000000000df1e000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method)

"AWT-EventQueue-0" prio=6 tid=0x000000000957d000 nid=0x1f5c waiting for monitor entry [0x000000000b0ed000] java.lang.Thread.State: BLOCKED (on object monitor) at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1381)

"AWT-Windows" daemon prio=6 tid=0x000000000905f000 nid=0x2338 runnable [0x0000000009d8f000] java.lang.Thread.State: RUNNABLE at sun.awt.windows.WToolkit.eventLoop(Native Method) at sun.awt.windows.WToolkit.run(WToolkit.java:299) at java.lang.Thread.run(Thread.java:722)

Locked ownable synchronizers:

"AWT-Shutdown" prio=6 tid=0x0000000008fcc000 nid=0x1d8c in Object.wait() [0x000000000886f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"Java2D Disposer" daemon prio=10 tid=0x0000000008eb6000 nid=0x1cec in Object.wait() [0x000000000927f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"Service Thread" daemon prio=6 tid=0x0000000006a7b800 nid=0x1b8c runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

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

Locked ownable synchronizers:

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

Locked ownable synchronizers:

"JDWP Event Helper Thread" daemon prio=6 tid=0x0000000006a66800 nid=0x1e98 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"JDWP Transport Listener: dt_socket" daemon prio=6 tid=0x0000000006a60800 nid=0xaa8 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"Attach Listener" daemon prio=10 tid=0x0000000006a4d000 nid=0x19d0 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"Signal Dispatcher" daemon prio=10 tid=0x0000000006a4c000 nid=0x1f54 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:

"Finalizer" daemon prio=8 tid=0x00000000069c9000 nid=0x23b4 in Object.wait() [0x0000000007f9f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"Reference Handler" daemon prio=10 tid=0x00000000069be800 nid=0xbe0 in Object.wait() [0x0000000007cff000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method)

"VM Thread" prio=10 tid=0x00000000069b5800 nid=0x1a74 runnable

"GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000002249000 nid=0x2024 runnable

"GC task thread#1 (ParallelGC)" prio=6 tid=0x000000000224a000 nid=0x1130 runnable

"GC task thread#2 (ParallelGC)" prio=6 tid=0x000000000224b000 nid=0xdc8 runnable

"GC task thread#3 (ParallelGC)" prio=6 tid=0x000000000224c800 nid=0x2054 runnable

"GC task thread#4 (ParallelGC)" prio=6 tid=0x000000000224e000 nid=0xb9c runnable

"GC task thread#5 (ParallelGC)" prio=6 tid=0x0000000002251000 nid=0x2348 runnable

"GC task thread#6 (ParallelGC)" prio=6 tid=0x0000000002252800 nid=0xe90 runnable

"GC task thread#7 (ParallelGC)" prio=6 tid=0x0000000002253800 nid=0xb40 runnable

"VM Periodic Task Thread" prio=10 tid=0x0000000006a8e000 nid=0xfa8 waiting on condition

JNI global references: 5205

Found one Java-level deadlock:

"BufferingLogDataCollectorProxy": waiting to lock monitor 0x00000000069c49d8 (object 0x00000000c048e158, a java.awt.Component$AWTTreeLock), which is held by "AWT-EventQueue-0" "AWT-EventQueue-0": waiting to lock monitor 0x00000000098cd600 (object 0x00000000c01ceb30, a javax.swing.text.DefaultStyledDocument), which is held by "BufferingLogDataCollectorProxy"

Java stack information for the threads listed above:

"BufferingLogDataCollectorProxy": at java.awt.Component.setFont(Component.java:1874)

Found 1 deadlock.

codebling commented 12 years ago

Far as I can tell, there's nothing that can be done about this. Creating a TextArea with a TitledBorder, then updating the TextArea's Document will cause a race condition which, if met, will deadlock the UI. May need to open a Java bug for this.