-
Bug
-
Resolution: Duplicate
-
P3
-
7
-
x86
-
linux_ubuntu
FULL PRODUCT 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)
ADDITIONAL OS VERSION INFORMATION :
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
A DESCRIPTION OF THE PROBLEM :
When you change the gtk theme on gnome 3 with the appearance utility, any swing application hangs at AWT-EventQueue-0 at the method com.sun.java.swing.plaf.gtk.GTKEngine.native_switch_theme(Native Method)
(it happens in my application and in netbeans too)
I have created a minimal test case too, without additional code, and add the sigquit signal stacktrace
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
run the testcase, open the appearance utility in gnome 3, change the theme, app is hang.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
keep running
ERROR MESSAGES/STACK TRACES THAT OCCUR :
2012-05-04 12:15:26
Full thread dump OpenJDK 64-Bit Server VM (22.0-b10 mixed mode):
"DestroyJavaVM" prio=10 tid=0x00007f4944007800 nid=0x1a78 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"AWT-EventQueue-0" prio=10 tid=0x00007f49442ad000 nid=0x1a86 runnable [0x00007f490ec01000]
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 <0x00000000eb71ca50> (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=0x00007f49442ab000 nid=0x1a85 in Object.wait() [0x00007f490ed03000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb77e7c0> (a java.lang.Object)
at java.lang.Object.wait(Object.java:503)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
- locked <0x00000000eb77e7c0> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:722)
"AWT-XAWT" daemon prio=10 tid=0x00007f49442a9000 nid=0x1a84 runnable [0x00007f490ee04000]
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=0x00007f4944274000 nid=0x1a83 in Object.wait() [0x00007f490ef05000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb76ac60> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000eb76ac60> (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=0x00007f494412b000 nid=0x1a81 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" daemon prio=10 tid=0x00007f4944128800 nid=0x1a80 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=10 tid=0x00007f4944125800 nid=0x1a7f waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x00007f4944123800 nid=0x1a7e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x00007f49440cc800 nid=0x1a7d in Object.wait() [0x00007f493b8de000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb6b5780> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000eb6b5780> (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=0x00007f49440ca000 nid=0x1a7c in Object.wait() [0x00007f493b9df000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb6b5300> (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 <0x00000000eb6b5300> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x00007f49440c2000 nid=0x1a7b runnable
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f4944012800 nid=0x1a79 runnable
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f4944014800 nid=0x1a7a runnable
"VM Periodic Task Thread" prio=10 tid=0x00007f4944135800 nid=0x1a82 waiting on condition
JNI global references: 329
Heap
PSYoungGen total 18432K, used 7332K [0x00000000eb6b0000, 0x00000000ecb40000, 0x0000000100000000)
eden space 15808K, 46% used [0x00000000eb6b0000,0x00000000ebdd9220,0x00000000ec620000)
from space 2624K, 0% used [0x00000000ec8b0000,0x00000000ec8b0000,0x00000000ecb40000)
to space 2624K, 0% used [0x00000000ec620000,0x00000000ec620000,0x00000000ec8b0000)
PSOldGen total 42176K, used 0K [0x00000000c2400000, 0x00000000c4d30000, 0x00000000eb6b0000)
object space 42176K, 0% used [0x00000000c2400000,0x00000000c2400000,0x00000000c4d30000)
PSPermGen total 21248K, used 10281K [0x00000000b7e00000, 0x00000000b92c0000, 0x00000000c2400000)
object space 21248K, 48% used [0x00000000b7e00000,0x00000000b880a510,0x00000000b92c0000)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test;
import java.awt.EventQueue;
import javax.swing.UIManager;
import java.util.logging.Logger;
import java.util.logging.Level;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test implements Runnable {
public static JFrame app;
public Test() {
}
@Override
public void run() {
setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
app = new JFrame();
app.add(new JButton("test"));
app.pack();
app.setVisible(true);
}
public static void main(final String[] args) {
EventQueue.invokeLater(new Test());
}
private void setLookAndFeel(String lafName) {
try {
UIManager.setLookAndFeel(lafName);
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Couldn't set look and feel", ex);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
don't change the theme.
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)
ADDITIONAL OS VERSION INFORMATION :
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
A DESCRIPTION OF THE PROBLEM :
When you change the gtk theme on gnome 3 with the appearance utility, any swing application hangs at AWT-EventQueue-0 at the method com.sun.java.swing.plaf.gtk.GTKEngine.native_switch_theme(Native Method)
(it happens in my application and in netbeans too)
I have created a minimal test case too, without additional code, and add the sigquit signal stacktrace
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
run the testcase, open the appearance utility in gnome 3, change the theme, app is hang.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
keep running
ERROR MESSAGES/STACK TRACES THAT OCCUR :
2012-05-04 12:15:26
Full thread dump OpenJDK 64-Bit Server VM (22.0-b10 mixed mode):
"DestroyJavaVM" prio=10 tid=0x00007f4944007800 nid=0x1a78 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"AWT-EventQueue-0" prio=10 tid=0x00007f49442ad000 nid=0x1a86 runnable [0x00007f490ec01000]
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 <0x00000000eb71ca50> (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=0x00007f49442ab000 nid=0x1a85 in Object.wait() [0x00007f490ed03000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb77e7c0> (a java.lang.Object)
at java.lang.Object.wait(Object.java:503)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
- locked <0x00000000eb77e7c0> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:722)
"AWT-XAWT" daemon prio=10 tid=0x00007f49442a9000 nid=0x1a84 runnable [0x00007f490ee04000]
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=0x00007f4944274000 nid=0x1a83 in Object.wait() [0x00007f490ef05000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb76ac60> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000eb76ac60> (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=0x00007f494412b000 nid=0x1a81 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" daemon prio=10 tid=0x00007f4944128800 nid=0x1a80 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" daemon prio=10 tid=0x00007f4944125800 nid=0x1a7f waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x00007f4944123800 nid=0x1a7e waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x00007f49440cc800 nid=0x1a7d in Object.wait() [0x00007f493b8de000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb6b5780> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x00000000eb6b5780> (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=0x00007f49440ca000 nid=0x1a7c in Object.wait() [0x00007f493b9df000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000eb6b5300> (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 <0x00000000eb6b5300> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x00007f49440c2000 nid=0x1a7b runnable
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f4944012800 nid=0x1a79 runnable
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f4944014800 nid=0x1a7a runnable
"VM Periodic Task Thread" prio=10 tid=0x00007f4944135800 nid=0x1a82 waiting on condition
JNI global references: 329
Heap
PSYoungGen total 18432K, used 7332K [0x00000000eb6b0000, 0x00000000ecb40000, 0x0000000100000000)
eden space 15808K, 46% used [0x00000000eb6b0000,0x00000000ebdd9220,0x00000000ec620000)
from space 2624K, 0% used [0x00000000ec8b0000,0x00000000ec8b0000,0x00000000ecb40000)
to space 2624K, 0% used [0x00000000ec620000,0x00000000ec620000,0x00000000ec8b0000)
PSOldGen total 42176K, used 0K [0x00000000c2400000, 0x00000000c4d30000, 0x00000000eb6b0000)
object space 42176K, 0% used [0x00000000c2400000,0x00000000c2400000,0x00000000c4d30000)
PSPermGen total 21248K, used 10281K [0x00000000b7e00000, 0x00000000b92c0000, 0x00000000c2400000)
object space 21248K, 48% used [0x00000000b7e00000,0x00000000b880a510,0x00000000b92c0000)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package test;
import java.awt.EventQueue;
import javax.swing.UIManager;
import java.util.logging.Logger;
import java.util.logging.Level;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test implements Runnable {
public static JFrame app;
public Test() {
}
@Override
public void run() {
setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
app = new JFrame();
app.add(new JButton("test"));
app.pack();
app.setVisible(true);
}
public static void main(final String[] args) {
EventQueue.invokeLater(new Test());
}
private void setLookAndFeel(String lafName) {
try {
UIManager.setLookAndFeel(lafName);
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, "Couldn't set look and feel", ex);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
don't change the theme.
- duplicates
-
JDK-7123957 Switch of Gnome theme ends up deadlocked in GTKEngine.native_switch_theme (regression in Java 7)
-
- Closed
-