<Swing Dev> Hang during theme change on gnome 3

Pavel Porvatov pavel.porvatov at oracle.com
Fri May 4 09:37:30 UTC 2012


Hi Paulo,

File a bug, please

Regards, Pavel
> 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) 




More information about the swing-dev mailing list