<Swing Dev> Hang during theme change on gnome 3

Paulo Levi i30817 at gmail.com
Fri May 4 09:02:59 UTC 2012


Hi - i have a swing application that hangs during theme change with gnome 3.
uname -a gives
Linux AIVAS-I 3.2.0-24-generic #38-Ubuntu SMP Tue May 1 16:18:50 UTC 2012
x86_64 x86_64 x86_64 GNU/Linux
java -version
java version "1.7.0_03"
OpenJDK Runtime Environment (IcedTea7 2.1.1pre) (7~u3-2.1.1~pre1-1ubuntu3)
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode)

And the stacktrace (by initiating the app in a console and sending sigquit):



2012-05-04 10:01:35
Full thread dump OpenJDK 64-Bit Server VM (22.0-b10 mixed mode):

"SwingWorker-pool-1-thread-2" daemon prio=10 tid=0x00007f70a44fc800
nid=0x11f5 waiting on condition [0x00007f70a81ec000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000c29bcd40> (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:1043)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

"SwingWorker-pool-1-thread-1" daemon prio=10 tid=0x00007f70a43e3000
nid=0x11f1 waiting on condition [0x00007f70a85f0000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000c29bcd40> (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:1043)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

"TimerQueue" daemon prio=10 tid=0x00007f70a4355000 nid=0x11f0 waiting on
condition [0x00007f70a86f1000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000c26de2c0> (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)

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

"AWT-EventQueue-0" prio=10 tid=0x00007f70ec2f6000 nid=0x11ea runnable
[0x00007f70b8e6b000]
   java.lang.Thread.State: RUNNABLE
    at com.sun.java.swing.plaf.gtk.GTKEngine.native_switch_theme(Native
Method)
    at
com.sun.java.swing.plaf.gtk.GTKEngine.themeChanged(GTKEngine.java:614)
    - locked <0x00000000c2a4d378> (a java.lang.Object)
    at
com.sun.java.swing.plaf.gtk.GTKLookAndFeel$WeakPCL$1.run(GTKLookAndFeel.java:1517)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
    at java.awt.EventQueue.access$000(EventQueue.java:101)
    at java.awt.EventQueue$3.run(EventQueue.java:666)
    at java.awt.EventQueue$3.run(EventQueue.java:664)
    at java.security.AccessController.doPrivileged(Native Method)
    at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
    at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

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

"AWT-XAWT" daemon prio=10 tid=0x00007f70ec2f2000 nid=0x11e8 runnable
[0x00007f70c01ee000]
   java.lang.Thread.State: RUNNABLE
    at sun.awt.X11.XToolkit.waitForEvents(Native Method)
    at sun.awt.X11.XToolkit.run(XToolkit.java:631)
    at sun.awt.X11.XToolkit.run(XToolkit.java:595)
    at java.lang.Thread.run(Thread.java:722)

"Java2D Disposer" daemon prio=10 tid=0x00007f70ec2bb800 nid=0x11e7 in
Object.wait() [0x00007f70e8173000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000ef731398> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    - locked <0x00000000ef731398> (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)

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

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

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

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

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

"Reference Handler" daemon prio=10 tid=0x00007f70ec0ca000 nid=0x11e0 in
Object.wait() [0x00007f70f113c000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000c29e11b0> (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 <0x00000000c29e11b0> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00007f70ec0c2000 nid=0x11df runnable

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f70ec012800 nid=0x11dc
runnable

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

"VM Periodic Task Thread" prio=10 tid=0x00007f70ec135800 nid=0x11e6 waiting
on condition

JNI global references: 348

Heap
 PSYoungGen      total 65856K, used 58756K [0x00000000eb6b0000,
0x00000000ef990000, 0x0000000100000000)
  eden space 63232K, 88% used
[0x00000000eb6b0000,0x00000000eed89218,0x00000000ef470000)
  from space 2624K, 98% used
[0x00000000ef700000,0x00000000ef988030,0x00000000ef990000)
  to   space 2624K, 0% used
[0x00000000ef470000,0x00000000ef470000,0x00000000ef700000)
 PSOldGen        total 42176K, used 19721K [0x00000000c2400000,
0x00000000c4d30000, 0x00000000eb6b0000)
  object space 42176K, 46% used
[0x00000000c2400000,0x00000000c3742628,0x00000000c4d30000)
 PSPermGen       total 21248K, used 20150K [0x00000000b7e00000,
0x00000000b92c0000, 0x00000000c2400000)
  object space 21248K, 94% used
[0x00000000b7e00000,0x00000000b91ad918,0x00000000b92c0000)



It seems like something happened at
com.sun.java.swing.plaf.gtk.GTKEngine.native_switch_theme(Native Method)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20120504/deccd218/attachment.html>


More information about the swing-dev mailing list