App hangs because EventDispatchThread locked in sun.misc.Unsafe.park()
843807Jul 5 2010 — edited Jul 5 2010Hello Everybody,
In my Swing application I am facing regularly full program hangs for several minutes. This is the call stack the Event Thread is hanging in:
java.awt.EventDispatchThread @ 0xcd0dc5c8 AWT-EventQueue-0
at sun.misc.Unsafe.park(ZJ)V (Native Method)
at java.util.concurrent.locks.LockSupport.park(Ljava/lang/Object;)V (LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt()Z (AbstractQueuedSynchronizer.java:747)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;I)Z (AbstractQueuedSynchronizer.java:778)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(I)V (AbstractQueuedSynchronizer.java:1114)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock()V (ReentrantLock.java:186)
at java.util.concurrent.locks.ReentrantLock.lock()V (ReentrantLock.java:262)
at sun.awt.SunToolkit.awtLock()V (SunToolkit.java:236)
at sun.awt.X11.XInputMethod.setXICFocusNative(JZZ)V (Native Method)
at sun.awt.X11.XInputMethod.setXICFocus(Ljava/awt/peer/ComponentPeer;ZZ)V (XInputMethod.java:65)
at sun.awt.X11InputMethod.activate()V (X11InputMethod.java:340)
at sun.awt.im.InputContext.activateInputMethod(Z)V (InputContext.java:376)
at sun.awt.im.InputContext.focusGained(Ljava/awt/Component;)V (InputContext.java:320)
at sun.awt.im.InputContext.dispatchEvent(Ljava/awt/AWTEvent;)V (InputContext.java:227)
at sun.awt.im.InputMethodContext.dispatchEvent(Ljava/awt/AWTEvent;)V (InputMethodContext.java:180)
at java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V (Component.java:4564)
at java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V (Container.java:2099)
at java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V (Component.java:4460)
at java.awt.KeyboardFocusManager.redispatchEvent(Ljava/awt/Component;Ljava/awt/AWTEvent;)V (KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Ljava/awt/Component;Ljava/awt/AWTEvent;)Z (DefaultKeyboardFocusManager.java:901)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Ljava/awt/AWTEvent;)Z (DefaultKeyboardFocusManager.java:513)
at java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V (Component.java:4502)
at java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V (Container.java:2099)
at java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V (Component.java:4460)
at sun.awt.X11.XWindow$1.run()V (XWindow.java:380)
at java.awt.event.InvocationEvent.dispatch()V (InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V (EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z (EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V (EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V (EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V (EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V (EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run()V (EventDispatchThread.java:122)
I currently have no clue what is going on. I have a full heap dump of the moment when to problem is occuring, but I do not know how to proceed.
Am I doing sth wrong or is it possible that I am facing a bug? I am using JDK6u20 and my application is started on SolarisX86 via WebStart.
I know that my question does not sound easy, but any tips that point my into a direction give me ideas for somehow finding the problem of my own are highly appreciated.