-
Bug
-
Resolution: Won't Fix
-
P3
-
7, 8, 9
-
None
FULL PRODUCT VERSION :
java version " 1.7.0_07 "
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Max OSX Lion
EXTRA RELEVANT SYSTEM CONFIGURATION :
Eclipse 3.7.2
A DESCRIPTION OF THE PROBLEM :
When trying to set LookAndFeel in Mac OSX Eclipse application for swing/awt UI support it hangs.
REGRESSION. Last worked in version 6u31
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Need Eclipse SWT jars in path and this code
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
IT should not hang.
ACTUAL -
Thread Dump
2012-10-16 18:35:57
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode):
" RMI TCP Connection(2)-10.98.192.163 " daemon prio=5 tid=0x00007fac0c8d4800 nid=0x6703 runnable [0x00000008e3df5000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
- locked <0x000000061247bde8> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- <0x000000060fb8de88> (a java.util.concurrent.ThreadPoolExecutor$Worker)
" JMX server connection timeout 16 " daemon prio=5 tid=0x00007fac0b90c800 nid=0x6603 in Object.wait() [0x00000008e3cf2000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000610631ae8> (a [I)
at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:168)
- locked <0x0000000610631ae8> (a [I)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- None
" RMI Scheduler(0) " daemon prio=5 tid=0x00007fac0b598000 nid=0x6503 waiting on condition [0x00000008e3bef000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000060f900288> (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.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
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)
Locked ownable synchronizers:
- None
" RMI TCP Connection(1)-10.98.192.163 " daemon prio=5 tid=0x00007fac0d80e000 nid=0x6407 runnable [0x00000008e3ae9000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
- locked <0x00000006105c4ae8> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- <0x000000060fb8cf10> (a java.util.concurrent.ThreadPoolExecutor$Worker)
" RMI TCP Accept-0 " daemon prio=5 tid=0x00007fac0b597000 nid=0x2c07 runnable [0x00000008e39e6000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:387)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:359)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- None
" Attach Listener " daemon prio=5 tid=0x00007fac0b01d000 nid=0x3407 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" AWT-EventQueue-0 " prio=5 tid=0x00007fac0c8f3000 nid=0x600b runnable [0x00000008e2bbb000]
java.lang.Thread.State: RUNNABLE
at sun.lwawt.macosx.LWCToolkit.loadNativeColors(Native Method)
at sun.lwawt.macosx.LWCToolkit.loadSystemColors(LWCToolkit.java:119)
at java.awt.SystemColor.updateSystemColors(SystemColor.java:468)
at java.awt.SystemColor.<clinit>(SystemColor.java:460)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:949)
at java.lang.reflect.Field.getFieldAccessor(Field.java:930)
at java.lang.reflect.Field.get(Field.java:372)
at javax.swing.plaf.basic.BasicLookAndFeel.loadSystemColors(BasicLookAndFeel.java:413)
at javax.swing.plaf.basic.BasicLookAndFeel.initSystemColorDefaults(BasicLookAndFeel.java:353)
at com.apple.laf.AquaLookAndFeel.getDefaults(AquaLookAndFeel.java:226)
at javax.swing.UIManager.setLookAndFeel(UIManager.java:536)
at javax.swing.UIManager.setLookAndFeel(UIManager.java:580)
at com.tibco.cep.studio.ui.Java7Test.setSystemLookAndFeel(Java7Test.java:99)
at com.tibco.cep.studio.ui.Java7Test$2.run(Java7Test.java:60)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:241)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Locked ownable synchronizers:
- None
" AWT-Shutdown " prio=5 tid=0x00007fac0c842800 nid=0x610b in Object.wait() [0x00000008e2a6d000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000060db2f168> (a java.lang.Object)
at java.lang.Object.wait(Object.java:503)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
- locked <0x000000060db2f168> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- None
" Service Thread " daemon prio=5 tid=0x00007fac0b809000 nid=0x3c03 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" C2 CompilerThread1 " daemon prio=5 tid=0x00007fac0b808800 nid=0x3b03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" C2 CompilerThread0 " daemon prio=5 tid=0x00007fac0b800800 nid=0x3a03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" Signal Dispatcher " daemon prio=5 tid=0x00007fac0b806800 nid=0x3903 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" Finalizer " daemon prio=5 tid=0x00007fac0d057000 nid=0x2a03 in Object.wait() [0x00000008df4e6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000060d295798> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x000000060d295798> (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)
Locked ownable synchronizers:
- None
" Reference Handler " daemon prio=5 tid=0x00007fac0d056000 nid=0x2903 in Object.wait() [0x00000008df3e3000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000060d295320> (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 <0x000000060d295320> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
" main " prio=5 tid=0x00007fac0d000000 nid=0x707 in Object.wait() [0x00007fff67517000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000060db352d0> (a java.awt.EventQueue$1AWTInvocationLock)
at java.lang.Object.wait(Object.java:503)
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1252)
- locked <0x000000060db352d0> (a java.awt.EventQueue$1AWTInvocationLock)
at com.tibco.cep.studio.ui.Java7Test.callTest(Java7Test.java:58)
at com.tibco.cep.studio.ui.Java7Test.main(Java7Test.java:27)
Locked ownable synchronizers:
- None
" VM Thread " prio=5 tid=0x00007fac0d053800 nid=0x2803 runnable
" GC task thread#0 (ParallelGC) " prio=5 tid=0x00007fac0d00d000 nid=0x2003 runnable
" GC task thread#1 (ParallelGC) " prio=5 tid=0x00007fac0d00e000 nid=0x2103 runnable
" GC task thread#2 (ParallelGC) " prio=5 tid=0x00007fac0d00e800 nid=0x2203 runnable
" GC task thread#3 (ParallelGC) " prio=5 tid=0x00007fac0d00f000 nid=0x2303 runnable
" GC task thread#4 (ParallelGC) " prio=5 tid=0x00007fac0d00f800 nid=0x2403 runnable
" GC task thread#5 (ParallelGC) " prio=5 tid=0x00007fac0d010800 nid=0x2503 runnable
" GC task thread#6 (ParallelGC) " prio=5 tid=0x00007fac0d011000 nid=0x2603 runnable
" GC task thread#7 (ParallelGC) " prio=5 tid=0x00007fac0d011800 nid=0x2703 runnable
" VM Periodic Task Thread " prio=5 tid=0x00007fac0b806000 nid=0x3d03 waiting on condition
JNI global references: 201
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.EventQueue;
import java.lang.reflect.InvocationTargetException;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class Java7Test {
public static void main( String[] argv )
throws InterruptedException {
final Display display = new Display();
final Shell shell = new Shell( display );
shell.setSize( 200, 200 );
shell.setLayout( new FillLayout() );
shell.setBackground( display.getSystemColor( SWT.COLOR_BLUE ) );
callTest(); // does not work! hangs
Button but = new Button( shell, SWT.PUSH );
but.setText( " Push Me " );
but.addSelectionListener( new SelectionAdapter() {
public void widgetSelected( SelectionEvent e ) {
java.awt.Color color = UIManager.getColor( " Panel.background " );
shell.setBackground( new Color( display, color.getRed(), color.getGreen(), color.getBlue() ) );
//callTest(); // works
}
} );
shell.open();
while ( !shell.isDisposed() ) {
if ( !display.readAndDispatch() )
display.sleep();
}
display.dispose();
System.exit( 0 );
}
private static boolean isLookAndFeelInitialized;
private static void callTest () {
try {
EventQueue.invokeAndWait(new Runnable() {
public void run() {
setSystemLookAndFeel();
}
});
} catch (InterruptedException e) {
SWT.error(SWT.ERROR_FAILED_EXEC, e);
} catch (InvocationTargetException e) {
SWT.error(SWT.ERROR_FAILED_EXEC, e);
}
}
protected static void setSystemLookAndFeel() {
assert EventQueue.isDispatchThread();
if (!isLookAndFeelInitialized) {
isLookAndFeelInitialized = true;
try {
String systemLaf = UIManager.getSystemLookAndFeelClassName();
//String xplatLaf = UIManager.getCrossPlatformLookAndFeelClassName();
// Java makes metal the system look and feel if running under a
// non-gnome Linux desktop. Fix that here, if the RCP itself is
// running with the GTK windowing system set.
/*
if (xplatLaf.equals(systemLaf) && SWT.getPlatform().equals( " gtk " )) {
systemLaf = GTK_LOOK_AND_FEEL_NAME;
}
UIManager.setLookAndFeel(systemLaf);
*/
if (SWT.getPlatform().equals( " gtk " )) {
//System.out.println( " System L&F: " + systemLaf);
if (systemLaf.equalsIgnoreCase(com.tibco.cep.tpcl.Activator.GTK_LOOK_AND_FEEL_NAME)) {
//UIManager.setLookAndFeel(METAL_LOOK_AND_FEEL_NAME);
// The following is same as Metal
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
System.out.println( " Setting L&F: " + UIManager.getLookAndFeel());
}
} else {
try {
System.out.println( " START " );
UIManager.setLookAndFeel(systemLaf);
} finally {
System.out.println( " END " );
}
}
//Setting No Erase Background
//TODO - To avoid flicker -- this setting works only on Windows
if ( " win32 " .equals(SWT.getPlatform())) {
System.setProperty( " sun.awt.noerasebackground " , " true " );
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
---------- END SOURCE ----------
java version " 1.7.0_07 "
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Max OSX Lion
EXTRA RELEVANT SYSTEM CONFIGURATION :
Eclipse 3.7.2
A DESCRIPTION OF THE PROBLEM :
When trying to set LookAndFeel in Mac OSX Eclipse application for swing/awt UI support it hangs.
REGRESSION. Last worked in version 6u31
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Need Eclipse SWT jars in path and this code
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
IT should not hang.
ACTUAL -
Thread Dump
2012-10-16 18:35:57
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode):
" RMI TCP Connection(2)-10.98.192.163 " daemon prio=5 tid=0x00007fac0c8d4800 nid=0x6703 runnable [0x00000008e3df5000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
- locked <0x000000061247bde8> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- <0x000000060fb8de88> (a java.util.concurrent.ThreadPoolExecutor$Worker)
" JMX server connection timeout 16 " daemon prio=5 tid=0x00007fac0b90c800 nid=0x6603 in Object.wait() [0x00000008e3cf2000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000610631ae8> (a [I)
at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:168)
- locked <0x0000000610631ae8> (a [I)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- None
" RMI Scheduler(0) " daemon prio=5 tid=0x00007fac0b598000 nid=0x6503 waiting on condition [0x00000008e3bef000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000060f900288> (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.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
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)
Locked ownable synchronizers:
- None
" RMI TCP Connection(1)-10.98.192.163 " daemon prio=5 tid=0x00007fac0d80e000 nid=0x6407 runnable [0x00000008e3ae9000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
- locked <0x00000006105c4ae8> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:83)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- <0x000000060fb8cf10> (a java.util.concurrent.ThreadPoolExecutor$Worker)
" RMI TCP Accept-0 " daemon prio=5 tid=0x00007fac0b597000 nid=0x2c07 runnable [0x00000008e39e6000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:387)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:359)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- None
" Attach Listener " daemon prio=5 tid=0x00007fac0b01d000 nid=0x3407 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" AWT-EventQueue-0 " prio=5 tid=0x00007fac0c8f3000 nid=0x600b runnable [0x00000008e2bbb000]
java.lang.Thread.State: RUNNABLE
at sun.lwawt.macosx.LWCToolkit.loadNativeColors(Native Method)
at sun.lwawt.macosx.LWCToolkit.loadSystemColors(LWCToolkit.java:119)
at java.awt.SystemColor.updateSystemColors(SystemColor.java:468)
at java.awt.SystemColor.<clinit>(SystemColor.java:460)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:949)
at java.lang.reflect.Field.getFieldAccessor(Field.java:930)
at java.lang.reflect.Field.get(Field.java:372)
at javax.swing.plaf.basic.BasicLookAndFeel.loadSystemColors(BasicLookAndFeel.java:413)
at javax.swing.plaf.basic.BasicLookAndFeel.initSystemColorDefaults(BasicLookAndFeel.java:353)
at com.apple.laf.AquaLookAndFeel.getDefaults(AquaLookAndFeel.java:226)
at javax.swing.UIManager.setLookAndFeel(UIManager.java:536)
at javax.swing.UIManager.setLookAndFeel(UIManager.java:580)
at com.tibco.cep.studio.ui.Java7Test.setSystemLookAndFeel(Java7Test.java:99)
at com.tibco.cep.studio.ui.Java7Test$2.run(Java7Test.java:60)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:241)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Locked ownable synchronizers:
- None
" AWT-Shutdown " prio=5 tid=0x00007fac0c842800 nid=0x610b in Object.wait() [0x00000008e2a6d000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000060db2f168> (a java.lang.Object)
at java.lang.Object.wait(Object.java:503)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
- locked <0x000000060db2f168> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:722)
Locked ownable synchronizers:
- None
" Service Thread " daemon prio=5 tid=0x00007fac0b809000 nid=0x3c03 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" C2 CompilerThread1 " daemon prio=5 tid=0x00007fac0b808800 nid=0x3b03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" C2 CompilerThread0 " daemon prio=5 tid=0x00007fac0b800800 nid=0x3a03 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" Signal Dispatcher " daemon prio=5 tid=0x00007fac0b806800 nid=0x3903 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
Locked ownable synchronizers:
- None
" Finalizer " daemon prio=5 tid=0x00007fac0d057000 nid=0x2a03 in Object.wait() [0x00000008df4e6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000060d295798> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x000000060d295798> (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)
Locked ownable synchronizers:
- None
" Reference Handler " daemon prio=5 tid=0x00007fac0d056000 nid=0x2903 in Object.wait() [0x00000008df3e3000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000060d295320> (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 <0x000000060d295320> (a java.lang.ref.Reference$Lock)
Locked ownable synchronizers:
- None
" main " prio=5 tid=0x00007fac0d000000 nid=0x707 in Object.wait() [0x00007fff67517000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x000000060db352d0> (a java.awt.EventQueue$1AWTInvocationLock)
at java.lang.Object.wait(Object.java:503)
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1252)
- locked <0x000000060db352d0> (a java.awt.EventQueue$1AWTInvocationLock)
at com.tibco.cep.studio.ui.Java7Test.callTest(Java7Test.java:58)
at com.tibco.cep.studio.ui.Java7Test.main(Java7Test.java:27)
Locked ownable synchronizers:
- None
" VM Thread " prio=5 tid=0x00007fac0d053800 nid=0x2803 runnable
" GC task thread#0 (ParallelGC) " prio=5 tid=0x00007fac0d00d000 nid=0x2003 runnable
" GC task thread#1 (ParallelGC) " prio=5 tid=0x00007fac0d00e000 nid=0x2103 runnable
" GC task thread#2 (ParallelGC) " prio=5 tid=0x00007fac0d00e800 nid=0x2203 runnable
" GC task thread#3 (ParallelGC) " prio=5 tid=0x00007fac0d00f000 nid=0x2303 runnable
" GC task thread#4 (ParallelGC) " prio=5 tid=0x00007fac0d00f800 nid=0x2403 runnable
" GC task thread#5 (ParallelGC) " prio=5 tid=0x00007fac0d010800 nid=0x2503 runnable
" GC task thread#6 (ParallelGC) " prio=5 tid=0x00007fac0d011000 nid=0x2603 runnable
" GC task thread#7 (ParallelGC) " prio=5 tid=0x00007fac0d011800 nid=0x2703 runnable
" VM Periodic Task Thread " prio=5 tid=0x00007fac0b806000 nid=0x3d03 waiting on condition
JNI global references: 201
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.awt.EventQueue;
import java.lang.reflect.InvocationTargetException;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class Java7Test {
public static void main( String[] argv )
throws InterruptedException {
final Display display = new Display();
final Shell shell = new Shell( display );
shell.setSize( 200, 200 );
shell.setLayout( new FillLayout() );
shell.setBackground( display.getSystemColor( SWT.COLOR_BLUE ) );
callTest(); // does not work! hangs
Button but = new Button( shell, SWT.PUSH );
but.setText( " Push Me " );
but.addSelectionListener( new SelectionAdapter() {
public void widgetSelected( SelectionEvent e ) {
java.awt.Color color = UIManager.getColor( " Panel.background " );
shell.setBackground( new Color( display, color.getRed(), color.getGreen(), color.getBlue() ) );
//callTest(); // works
}
} );
shell.open();
while ( !shell.isDisposed() ) {
if ( !display.readAndDispatch() )
display.sleep();
}
display.dispose();
System.exit( 0 );
}
private static boolean isLookAndFeelInitialized;
private static void callTest () {
try {
EventQueue.invokeAndWait(new Runnable() {
public void run() {
setSystemLookAndFeel();
}
});
} catch (InterruptedException e) {
SWT.error(SWT.ERROR_FAILED_EXEC, e);
} catch (InvocationTargetException e) {
SWT.error(SWT.ERROR_FAILED_EXEC, e);
}
}
protected static void setSystemLookAndFeel() {
assert EventQueue.isDispatchThread();
if (!isLookAndFeelInitialized) {
isLookAndFeelInitialized = true;
try {
String systemLaf = UIManager.getSystemLookAndFeelClassName();
//String xplatLaf = UIManager.getCrossPlatformLookAndFeelClassName();
// Java makes metal the system look and feel if running under a
// non-gnome Linux desktop. Fix that here, if the RCP itself is
// running with the GTK windowing system set.
/*
if (xplatLaf.equals(systemLaf) && SWT.getPlatform().equals( " gtk " )) {
systemLaf = GTK_LOOK_AND_FEEL_NAME;
}
UIManager.setLookAndFeel(systemLaf);
*/
if (SWT.getPlatform().equals( " gtk " )) {
//System.out.println( " System L&F: " + systemLaf);
if (systemLaf.equalsIgnoreCase(com.tibco.cep.tpcl.Activator.GTK_LOOK_AND_FEEL_NAME)) {
//UIManager.setLookAndFeel(METAL_LOOK_AND_FEEL_NAME);
// The following is same as Metal
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
System.out.println( " Setting L&F: " + UIManager.getLookAndFeel());
}
} else {
try {
System.out.println( " START " );
UIManager.setLookAndFeel(systemLaf);
} finally {
System.out.println( " END " );
}
}
//Setting No Erase Background
//TODO - To avoid flicker -- this setting works only on Windows
if ( " win32 " .equals(SWT.getPlatform())) {
System.setProperty( " sun.awt.noerasebackground " , " true " );
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
---------- END SOURCE ----------