Open GoogleCodeExporter opened 9 years ago
Can't reproduce
Original comment by mab...@gmail.com
on 7 Jul 2012 at 9:02
The problem still there somewhere,it happend to me on my windows(Windows 7
Ultimate) box,i have not tested it on my linux box yet.
SwingTerminal seems to fail loading or something,after it happends i just use
to re-rerun it and it usually doesn't happen again,its very random. :(
Original comment by zer0.c...@gmail.com
on 14 Jul 2012 at 6:08
Ok, let's re-open this. I haven't seen it happen for a while, I think I did
something a while back which made it go away. Let's keep our eyes open and put
anything that may be related here...
Original comment by mab...@gmail.com
on 15 Jul 2012 at 1:23
It's a pity.
This problem makes the program unstable.
Original comment by pinon.pi...@gmail.com
on 4 Feb 2013 at 9:42
This hasn't happened to me in a long time now, anyone who's seen it recently?
Original comment by mab...@gmail.com
on 4 Feb 2013 at 12:23
[deleted comment]
Yes me, many times per day.
About, one in Ten.
I'm obliged to kill swing terminal and relaunch my software.
I'm on Debian 64bits in Gnome-Shell 3.4
Original comment by pinon.pi...@gmail.com
on 4 Feb 2013 at 2:38
Okay, could you please make a minimal example that reproduces this behavior and
post it here? I still can't get it to trigger on my side...
Original comment by mab...@gmail.com
on 4 Feb 2013 at 10:53
-----
Debian 64bits / Gnome-Shell 3.4
Java (Sun) version :
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
-----
Lauched by a simple : java -jar test.jar
-----
public static void main(String[] args) {
GUIScreen textGUI = TerminalFacade.createGUIScreen();
if (textGUI == null) {
return;
}
textGUI.getScreen().startScreen();
Window window = new Window("test");
window.addComponent(new Label("test"));
textGUI.showWindow(window, GUIScreen.Position.CENTER);
}
-----
Thanks,
Original comment by pinon.pi...@gmail.com
on 6 Feb 2013 at 6:34
I've tried it 20 times on XFCE but still no problem. Will try to find a Gnome
installation somewhere to try on; it may be related to desktop compositing.
Original comment by mab...@gmail.com
on 17 Feb 2013 at 1:32
I'm seeing the same issue, too. As far as I can tell, just starting and
stopping the Screen seems to be enough:
SwingTerminal terminal = new SwingTerminal(80, 25);
Screen screen = new Screen(terminal);
screen.startScreen();
screen.stopScreen();
As mentioned previously in the thread, it's rather erratic. Sometimes it
happens immediately, other times it takes several attempts. I'm running Fedora
18 with stock Gnome shell and Ubuntu 13.04 with Cinnamon (which uses Gnome 3
under the hood).
This is a minimal example that exposes the issue:
import com.googlecode.lanterna.terminal.swing.SwingTerminal;
import com.googlecode.lanterna.screen.Screen;
class Main {
public static void main(String[] args) {
SwingTerminal terminal = new SwingTerminal(80, 25);
Screen screen = new Screen(terminal);
screen.startScreen();
screen.stopScreen();
}
}
The following shell script usually triggers it within a minute:
#!/bin/bash
while true; do
java -cp .:lanterna-2.1.5.jar Main
done
The result is always the same: the program doesn't exit and the window just
hangs there, empty with white background. It doesn't response to any input and
the only way to shut it down is to `kill -9` the Java process. There is no
output on STDOUT or STDERR.
Since it takes some time to trigger the issue (due to the JVM startup time), I
tried to wrap the `Main` body in an infinite `while` loop.
Then I actually get a stacktrace printed out:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.googlecode.lanterna.terminal.swing.SwingTerminal$FrameResizeListener.componentResized(SwingTerminal.java:445)
at java.awt.Component.processComponentEvent(Component.java:6331)
at java.awt.Component.processEvent(Component.java:6285)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Window.processEvent(Window.java:2022)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:702)
at java.awt.EventQueue$4.run(EventQueue.java:700)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
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)
Again, this doesn't happen every time -- more like 1 out of 10 times the
`while` body is executed. But this time, the program doesn't freeze, it just
continues with the loop (i.e. the Swing window isn't left hanging).
I wonder if this is the root of the issue somehow getting swallowed by the
Swing machinery, rendering the process unresponsive. But I know very little
about how Swing works so I've no idea whether this is useful or misleading.
Original comment by to...@sedovic.cz
on 19 Jun 2013 at 12:33
I've just tried it under XFCE and the issue is there, too.
Original comment by to...@sedovic.cz
on 19 Jun 2013 at 5:01
After looking into this some more (I compiled the latest source) it seems that
the exception is probably unrelated to the hanging.
Sometimes `frame.getGraphics()` returns `null` at the following line:
https://code.google.com/p/lanterna/source/browse/src/main/java/com/googlecode/la
nterna/terminal/swing/SwingTerminal.java#445
That caused the exception, so I added a check that returns if there's a
`frame.getGraphics()` is null. That took care of the exception but it didn't
solve the hanging.
Thanks to Advanced Debugging Techniques (i.e. System.out.println) it seems that
the hanging always occurs when calling `terminalFrame.setVisible(false)` in
`SwingTerminal.exitPrivateMode`:
https://code.google.com/p/lanterna/source/browse/src/main/java/com/googlecode/la
nterna/terminal/swing/SwingTerminal.java#221
I tried to look around a bit but I'm really out of depth when it comes to
Swing. It seems that this tends to occur when you manipulate the JFrame's
visibility from a thread other than Event-Dispatch.
Calling `javax.swing.SwingUtilities.isEventDispatchThread()` returned `false`
so that would seem to support the hypothesis. However, the commonly-quoted
solution (running the setVisible code inside `SwingUtilities.invokeLater(new
Runnable() { ... })`) didn't work for me. Maybe there's some other offending
code, or maybe it's something completely different -- I don't know.
Hopefully this helps to at least narrow it down a bit more.
Original comment by to...@sedovic.cz
on 19 Jun 2013 at 7:24
Ah, there could be the AWT-thread ghost in action here...!
Let me try to sample code above again and try...
Original comment by mab...@gmail.com
on 24 Jun 2013 at 11:48
I've deployed a new 2.1.6 snapshot, wrapping a little bit more code in
SwingUtilities.invokeLater, but I'm not convinced it will be enough. So far I
haven't been able to reproduce the issue with the code above, I let the script
run for a good 15 minutes...
What version of Java are you using? What happens if you try to run jstack on
the process when it's broken?
Original comment by mab...@gmail.com
on 24 Jun 2013 at 12:19
Using lanterna-2.1.6-20130627.005818-4.jar, I got the hang again.
Here's my java version:
$ java -version
java version "1.7.0_21"
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-1ubuntu1)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
Running `jstack -l` on the hanging process returns this:
2013-06-27 22:29:54
Full thread dump OpenJDK 64-Bit Server VM (23.7-b01 mixed mode):
"Attach Listener" daemon prio=10 tid=0x00007f647c001000 nid=0x1883 waiting on
condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"TimerQueue" daemon prio=10 tid=0x00007f6454098800 nid=0x1845 waiting on
condition [0x00007f64681e6000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000e668b088> (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:722)
Locked ownable synchronizers:
- <0x00000000e668b0b0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"AWT-EventQueue-0" prio=10 tid=0x00007f64ac406000 nid=0x1844 waiting on
condition [0x00007f64682e5000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000e62b3fb8> (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 sun.awt.SunToolkit.awtLock(SunToolkit.java:238)
at sun.awt.X11GraphicsDevice.getDoubleBufferVisuals(Native Method)
at sun.awt.X11GraphicsDevice.makeDefaultConfiguration(X11GraphicsDevice.java:251)
at sun.awt.X11GraphicsDevice.getDefaultConfiguration(X11GraphicsDevice.java:225)
- locked <0x00000000e63d92d0> (a java.lang.Object)
at javax.swing.RepaintManager.getDoubleBufferMaximumSize(RepaintManager.java:1124)
at javax.swing.RepaintManager.getVolatileOffscreenBuffer(RepaintManager.java:1007)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1428)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:311)
at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
at javax.swing.JComponent.paint(JComponent.java:1031)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.awt.Container.paint(Container.java:1967)
at java.awt.Window.paint(Window.java:3877)
at javax.swing.RepaintManager$3.run(RepaintManager.java:807)
at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
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)
Locked ownable synchronizers:
- None
"AWT-Shutdown" prio=10 tid=0x00007f64ac404800 nid=0x1843 in Object.wait()
[0x00007f64683e8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000e64fcda0> (a java.lang.Object)
at java.lang.Object.wait(Object.java:503)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
- locked <0x00000000e64fcda0> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- None
"AWT-XAWT" daemon prio=10 tid=0x00007f64ac3ff800 nid=0x1842 waiting for monitor
entry [0x00007f6470160000]
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.awt.X11GraphicsDevice.getDefaultConfiguration(X11GraphicsDevice.java:225)
- waiting to lock <0x00000000e63d92d0> (a java.lang.Object)
at sun.awt.X11.XWindowPeer.checkIfOnNewScreen(XWindowPeer.java:681)
at sun.awt.X11.XDecoratedPeer.handleConfigureNotifyEvent(XDecoratedPeer.java:758)
at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1109)
at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1066)
at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:561)
at sun.awt.X11.XToolkit.run(XToolkit.java:670)
at sun.awt.X11.XToolkit.run(XToolkit.java:591)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- <0x00000000e62b3fb8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
"Java2D Disposer" daemon prio=10 tid=0x00007f64ac272000 nid=0x1841 in
Object.wait() [0x00007f6490121000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000e62deb30> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000e62deb30> (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:722)
Locked ownable synchronizers:
- None
"Service Thread" daemon prio=10 tid=0x00007f64ac110800 nid=0x183f runnable
[0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C2 CompilerThread1" daemon prio=10 tid=0x00007f64ac10e000 nid=0x183e waiting
on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"C2 CompilerThread0" daemon prio=10 tid=0x00007f64ac10b000 nid=0x183d waiting
on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Signal Dispatcher" daemon prio=10 tid=0x00007f64ac109000 nid=0x183c runnable
[0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
"Finalizer" daemon prio=10 tid=0x00007f64ac0b1800 nid=0x183b in Object.wait()
[0x00007f64935f4000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000e6205728> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000e6205728> (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)
Locked ownable synchronizers:
- None
"Reference Handler" daemon prio=10 tid=0x00007f64ac0af800 nid=0x183a in
Object.wait() [0x00007f64936f5000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000e62052b0> (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 <0x00000000e62052b0> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
"main" prio=10 tid=0x00007f64ac009000 nid=0x1834 in Object.wait()
[0x00007f64b2db6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000e67a8310> (a java.awt.EventQueue$1AWTInvocationLock)
at java.lang.Object.wait(Object.java:503)
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1263)
- locked <0x00000000e67a8310> (a java.awt.EventQueue$1AWTInvocationLock)
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1244)
at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1346)
at com.googlecode.lanterna.terminal.swing.SwingTerminal.exitPrivateMode(SwingTerminal.java:265)
at com.googlecode.lanterna.screen.Screen.stopScreen(Screen.java:224)
at Main.repro(repro.java:22)
at Main.main(repro.java:10)
Locked ownable synchronizers:
- None
"VM Thread" prio=10 tid=0x00007f64ac0a7000 nid=0x1839 runnable
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f64ac016800 nid=0x1835
runnable
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f64ac018800 nid=0x1836
runnable
"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f64ac01a800 nid=0x1837
runnable
"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f64ac01c800 nid=0x1838
runnable
"VM Periodic Task Thread" prio=10 tid=0x00007f64ac113000 nid=0x1840 waiting on
condition
JNI global references: 325
Found one Java-level deadlock:
=============================
"AWT-EventQueue-0":
waiting for ownable synchronizer 0x00000000e62b3fb8, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "AWT-XAWT"
"AWT-XAWT":
waiting to lock monitor 0x00007f645402b5e8 (object 0x00000000e63d92d0, a java.lang.Object),
which is held by "AWT-EventQueue-0"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-0":
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000e62b3fb8> (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 sun.awt.SunToolkit.awtLock(SunToolkit.java:238)
at sun.awt.X11GraphicsDevice.getDoubleBufferVisuals(Native Method)
at sun.awt.X11GraphicsDevice.makeDefaultConfiguration(X11GraphicsDevice.java:251)
at sun.awt.X11GraphicsDevice.getDefaultConfiguration(X11GraphicsDevice.java:225)
- locked <0x00000000e63d92d0> (a java.lang.Object)
at javax.swing.RepaintManager.getDoubleBufferMaximumSize(RepaintManager.java:1124)
at javax.swing.RepaintManager.getVolatileOffscreenBuffer(RepaintManager.java:1007)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1428)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:311)
at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
at javax.swing.JComponent.paint(JComponent.java:1031)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.awt.Container.paint(Container.java:1967)
at java.awt.Window.paint(Window.java:3877)
at javax.swing.RepaintManager$3.run(RepaintManager.java:807)
at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
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-XAWT":
at sun.awt.X11GraphicsDevice.getDefaultConfiguration(X11GraphicsDevice.java:225)
- waiting to lock <0x00000000e63d92d0> (a java.lang.Object)
at sun.awt.X11.XWindowPeer.checkIfOnNewScreen(XWindowPeer.java:681)
at sun.awt.X11.XDecoratedPeer.handleConfigureNotifyEvent(XDecoratedPeer.java:758)
at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1109)
at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1066)
at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:561)
at sun.awt.X11.XToolkit.run(XToolkit.java:670)
at sun.awt.X11.XToolkit.run(XToolkit.java:591)
at java.lang.Thread.run(Thread.java:722)
Found 1 deadlock.
Original comment by to...@sedovic.cz
on 27 Jun 2013 at 8:31
So there's a deadlock between AWT-XAWT and AWT-EventQueue-0... Googling around
a bit shows that it seems to have been reported to Oracle, but they too have
problems reproducing it.
Just for curiosity's sake, could you try with an Oracle JDK/JRE instead of
OpenJDK?
Original comment by mab...@gmail.com
on 15 Jul 2013 at 11:00
Sorry for the delay. I've tried the Oracle JDK and it hangs, too.
$ java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
The jstack output looks very similar, I've attached on the off-chance it might
help.
Original comment by to...@sedovic.cz
on 22 Jul 2013 at 5:15
Attachments:
Once more with the correct attachment...
Original comment by to...@sedovic.cz
on 22 Jul 2013 at 5:16
Attachments:
It's definitely the same issue they are having here:
https://forums.oracle.com/thread/2244637
There seems to have been a bug report with Sun/Oracle but it seems to have gone
missing:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7105941
Original comment by mab...@gmail.com
on 3 Aug 2013 at 6:05
[deleted comment]
I'm curious if the new SwingTerminal in lanterna 3 fixes this issue...
Original comment by mab...@gmail.com
on 12 Jul 2014 at 2:56
Original issue reported on code.google.com by
mab...@gmail.com
on 28 Jun 2010 at 7:32