I decided to make a new thread, because it seems to be a different problem then the one here viewtopic.php?f=4&t=5319&start=45.
Also, i have no clue if the fix proposed in the beta version (see thread in link above) solves this issue or not.
Description:
When the designer works in MetalLookAndFeel, and i have a JPanel with a JComboBox in it, if I click on the property "selected", and set it to true/false, i get a deadlock.
Reproduce instructions:
here is a sample code that causes the problem in our enviroment:
- Code: Select all
public class TestPanel extends JPanel
{
private JCheckBox _combo1;
public TestPanel()
{
super();
setLayout(new GridBagLayout());
setRequestFocusEnabled(false);
setPreferredSize(new Dimension(430, 80));
_combo1 = new JCheckBox();
_combo1.setSelected(true);
_combo1.setText("A");
final GridBagConstraints gridBagConstraints_9 = new GridBagConstraints();
gridBagConstraints_9.insets = new Insets(0, 38, 0, 0);
gridBagConstraints_9.gridy = 1;
gridBagConstraints_9.gridx = 0;
add(_combo1, gridBagConstraints_9);
}
}
To make it crash, try to quickly click on "selected" property (enable/disable fast a few times). This will freeze up eclipse, and then a little kill -3 <pid> shows the stack trace. (In our real panel, a single click does the trick..)
here is the real stack trace for the piece of code listed above:
- Code: Select all
refresh: 176
palette: 178
2010-11-07 15:34:58
Full thread dump Java HotSpot(TM) Client VM (14.3-b01 mixed mode, sharing):
"AWT-EventQueue-0" prio=10 tid=0x08b40800 nid=0x707b waiting for monitor entry [0x04607000]
java.lang.Thread.State: BLOCKED (on object monitor)
at javax.swing.plaf.metal.MetalRadioButtonUI.paint(MetalRadioButtonUI.java:103)
- waiting to lock <0x1b80f800> (a javax.swing.plaf.metal.MetalCheckBoxUI)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:751)
at javax.swing.JComponent.printComponent(JComponent.java:1181)
at javax.swing.JComponent.paint(JComponent.java:1021)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1026)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1026)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1026)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1026)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5119)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
at javax.swing.JComponent.paint(JComponent.java:1003)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
at java.awt.Container.paint(Container.java:1780)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
"AWT-Shutdown" prio=10 tid=0x08917400 nid=0x707a in Object.wait() [0x045b6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1ab96f40> (a java.lang.Object)
at java.lang.Object.wait(Object.java:485)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0x1ab96f40> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:619)
"[ThreadPool Manager] - Idle Thread" daemon prio=10 tid=0x08ad9c00 nid=0x7079 in Object.wait() [0x04788000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x177101c8> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
- locked <0x177101c8> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
"com.google.common.base.internal.Finalizer" daemon prio=10 tid=0xb62bf000 nid=0x7075 in Object.wait() [0x0405f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1b83afb0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x1b83afb0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at com.google.common.base.internal.Finalizer.run(Finalizer.java:127)
"Timer-0" daemon prio=10 tid=0xb6348400 nid=0x7074 in Object.wait() [0x053be000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1b83b040> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:509)
- locked <0x1b83b040> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=10 tid=0xb611a400 nid=0x7066 in Object.wait() [0x040b0000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1aa7ebf0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x1aa7ebf0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Background Startup" prio=10 tid=0x091ef400 nid=0x7063 in Object.wait() [0x0400e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1ab1da48> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:485)
at com.instantiations.eclipse.startup.StartupManager.start0(StartupManager.java:207)
- locked <0x1ab1da48> (a java.util.ArrayList)
at com.instantiations.eclipse.startup.StartupManager.access$0(StartupManager.java:99)
at com.instantiations.eclipse.startup.StartupManager$1.run(StartupManager.java:87)
"Worker-8" prio=10 tid=0xb6546000 nid=0x7062 in Object.wait() [0x03fbd000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-7" prio=10 tid=0x090c2400 nid=0x7061 in Object.wait() [0x0611f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"AWT-XAWT" daemon prio=10 tid=0xb6fbd800 nid=0x7060 runnable [0x03e6c000]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:548)
at sun.awt.X11.XToolkit.run(XToolkit.java:523)
at java.lang.Thread.run(Thread.java:619)
"Java2D Disposer" daemon prio=10 tid=0xb7ac5c00 nid=0x705f in Object.wait() [0x07c42000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1ab1dcc0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x1ab1dcc0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
"Worker-6" prio=10 tid=0xb7822800 nid=0x7056 in Object.wait() [0x03ebd000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-5" prio=10 tid=0x08df1c00 nid=0x7054 in Object.wait() [0x01e06000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-4" prio=10 tid=0x08df4800 nid=0x7053 in Object.wait() [0x04e3e000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-3" prio=10 tid=0x08b5b800 nid=0x7052 in Object.wait() [0x068ab000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-2" prio=10 tid=0xb6d57000 nid=0x7051 in Object.wait() [0x046a7000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Bundle File Closer" daemon prio=10 tid=0x08c88000 nid=0x7029 in Object.wait() [0x01da6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19cce140> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
- locked <0x19cce140> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=10 tid=0xb7ae1800 nid=0x7028 in Object.wait() [0x08150000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1996a748> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x1996a748> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Java indexing" daemon prio=10 tid=0x08f27000 nid=0x7026 in Object.wait() [0x01d55000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x196304f0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:381)
- locked <0x196304f0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Thread.run(Thread.java:619)
"Worker-1" prio=10 tid=0xb7a41c00 nid=0x7024 in Object.wait() [0x04737000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"Worker-0" prio=10 tid=0x08ba1000 nid=0x7022 in Object.wait() [0x05850000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x19040b60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:51)
"[Timer] - Main Queue Handler" daemon prio=10 tid=0x08a99c00 nid=0x7021 in Object.wait() [0x06a88000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19007998> (a java.lang.Object)
at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
- locked <0x19007998> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:619)
"Framework Event Dispatcher" daemon prio=10 tid=0x0892ec00 nid=0x701f in Object.wait() [0x05101000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19007a48> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
- locked <0x19007a48> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
"Start Level Event Dispatcher" daemon prio=10 tid=0xb7a65400 nid=0x701e in Object.wait() [0x06715000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19007ac0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
- locked <0x19007ac0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
"State Data Manager" daemon prio=10 tid=0xb7a3c000 nid=0x701d waiting on condition [0x05a29000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:306)
at java.lang.Thread.run(Thread.java:619)
"Low Memory Detector" daemon prio=10 tid=0x0884b000 nid=0x701b runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x08848000 nid=0x701a waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x0883d800 nid=0x7019 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x08836000 nid=0x7018 in Object.wait() [0x00db8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19007d88> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x19007d88> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x08834c00 nid=0x7017 in Object.wait() [0x00b9a000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x19007e10> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x19007e10> (a java.lang.ref.Reference$Lock)
"main" prio=10 tid=0x0880ec00 nid=0x7008 waiting for monitor entry [0xbfed7000]
java.lang.Thread.State: BLOCKED (on object monitor)
at javax.swing.plaf.metal.MetalUtils$GradientPainter.paint(MetalUtils.java:250)
- waiting to lock <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.plaf.metal.MetalUtils.drawGradient(MetalUtils.java:205)
at javax.swing.plaf.metal.MetalIconFactory$CheckBoxIcon.paintOceanIcon(MetalIconFactory.java:1057)
at javax.swing.plaf.metal.MetalIconFactory$CheckBoxIcon.paintIcon(MetalIconFactory.java:1075)
at javax.swing.plaf.metal.MetalRadioButtonUI.paint(MetalRadioButtonUI.java:177)
- locked <0x1b80f800> (a javax.swing.plaf.metal.MetalCheckBoxUI)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:751)
at javax.swing.JComponent.printComponent(JComponent.java:1181)
at javax.swing.JComponent.paint(JComponent.java:1021)
at javax.swing.JComponent.print(JComponent.java:1163)
at javax.swing.JComponent.printAll(JComponent.java:1109)
at com.instantiations.designer.swing.utils.SwingImageUtils.createComponentShotAWT(SwingImageUtils.java:87)
at com.instantiations.designer.swing.utils.SwingImageUtils.makeShotsHierarchy(SwingImageUtils.java:210)
at com.instantiations.designer.swing.utils.SwingImageUtils.makeShotsHierarchy(SwingImageUtils.java:215)
at com.instantiations.designer.swing.utils.SwingScreenshotMaker.makeShots(SwingScreenshotMaker.java:157)
at com.instantiations.designer.swing.model.component.ComponentInfo.refresh_fetch(ComponentInfo.java:126)
at com.instantiations.designer.swing.model.component.ComponentInfo.refresh_fetch(ComponentInfo.java:112)
at com.instantiations.designer.swing.model.component.ContainerInfo.refresh_fetch(ContainerInfo.java:226)
at com.instantiations.designer.core.model.ObjectInfo$5$1.run(ObjectInfo.java:439)
at com.instantiations.designer.core.utils.execution.ExecutionUtils.runDesignTime(ExecutionUtils.java:121)
at com.instantiations.designer.core.model.ObjectInfo$5.run(ObjectInfo.java:436)
at com.instantiations.designer.swing.utils.SwingUtils$1.run(SwingUtils.java:63)
at com.instantiations.designer.swing.utils.SwingUtils.invokeLaterAndWait(SwingUtils.java:145)
at com.instantiations.designer.swing.utils.SwingUtils.runLaterAndWait(SwingUtils.java:60)
at com.instantiations.designer.swing.model.component.ComponentInfo.doRefresh(ComponentInfo.java:100)
at com.instantiations.designer.core.model.ObjectInfo.refresh(ObjectInfo.java:433)
at com.instantiations.designer.core.model.ObjectInfo.endEdit(ObjectInfo.java:400)
at com.instantiations.designer.core.utils.execution.ExecutionUtils.run(ExecutionUtils.java:288)
at com.instantiations.designer.core.model.property.GenericPropertyImpl.setValue(GenericPropertyImpl.java:184)
at com.instantiations.designer.core.model.property.editor.BooleanPropertyEditor.invertValue(BooleanPropertyEditor.java:93)
at com.instantiations.designer.core.model.property.editor.BooleanPropertyEditor.activate(BooleanPropertyEditor.java:71)
at com.instantiations.designer.core.model.property.table.PropertyTable.activateEditor(PropertyTable.java:495)
at com.instantiations.designer.core.model.property.table.PropertyTable.handleMouseDown(PropertyTable.java:345)
at com.instantiations.designer.core.model.property.table.PropertyTable.access$8(PropertyTable.java:329)
at com.instantiations.designer.core.model.property.table.PropertyTable$5.mouseDown(PropertyTable.java:157)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3493)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3112)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
"VM Thread" prio=10 tid=0x08833000 nid=0x7016 runnable
"VM Periodic Task Thread" prio=10 tid=0x0884c800 nid=0x701c waiting on condition
JNI global references: 1817
Found one Java-level deadlock:
=============================
"AWT-EventQueue-0":
waiting to lock monitor 0x0883a670 (object 0x1b80f800, a javax.swing.plaf.metal.MetalCheckBoxUI),
which is held by "main"
"main":
waiting to lock monitor 0x08839be4 (object 0x1ab48738, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-0"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-0":
at javax.swing.plaf.metal.MetalRadioButtonUI.paint(MetalRadioButtonUI.java:103)
- waiting to lock <0x1b80f800> (a javax.swing.plaf.metal.MetalCheckBoxUI)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:751)
at javax.swing.JComponent.printComponent(JComponent.java:1181)
at javax.swing.JComponent.paint(JComponent.java:1021)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1026)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1026)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1026)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1026)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
at javax.swing.JComponent.paintChildren(JComponent.java:852)
- locked <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5119)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
at javax.swing.JComponent.paint(JComponent.java:1003)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
at java.awt.Container.paint(Container.java:1780)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
"main":
at javax.swing.plaf.metal.MetalUtils$GradientPainter.paint(MetalUtils.java:250)
- waiting to lock <0x1ab48738> (a java.awt.Component$AWTTreeLock)
at javax.swing.plaf.metal.MetalUtils.drawGradient(MetalUtils.java:205)
at javax.swing.plaf.metal.MetalIconFactory$CheckBoxIcon.paintOceanIcon(MetalIconFactory.java:1057)
at javax.swing.plaf.metal.MetalIconFactory$CheckBoxIcon.paintIcon(MetalIconFactory.java:1075)
at javax.swing.plaf.metal.MetalRadioButtonUI.paint(MetalRadioButtonUI.java:177)
- locked <0x1b80f800> (a javax.swing.plaf.metal.MetalCheckBoxUI)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:751)
at javax.swing.JComponent.printComponent(JComponent.java:1181)
at javax.swing.JComponent.paint(JComponent.java:1021)
at javax.swing.JComponent.print(JComponent.java:1163)
at javax.swing.JComponent.printAll(JComponent.java:1109)
at com.instantiations.designer.swing.utils.SwingImageUtils.createComponentShotAWT(SwingImageUtils.java:87)
at com.instantiations.designer.swing.utils.SwingImageUtils.makeShotsHierarchy(SwingImageUtils.java:210)
at com.instantiations.designer.swing.utils.SwingImageUtils.makeShotsHierarchy(SwingImageUtils.java:215)
at com.instantiations.designer.swing.utils.SwingScreenshotMaker.makeShots(SwingScreenshotMaker.java:157)
at com.instantiations.designer.swing.model.component.ComponentInfo.refresh_fetch(ComponentInfo.java:126)
at com.instantiations.designer.swing.model.component.ComponentInfo.refresh_fetch(ComponentInfo.java:112)
at com.instantiations.designer.swing.model.component.ContainerInfo.refresh_fetch(ContainerInfo.java:226)
at com.instantiations.designer.core.model.ObjectInfo$5$1.run(ObjectInfo.java:439)
at com.instantiations.designer.core.utils.execution.ExecutionUtils.runDesignTime(ExecutionUtils.java:121)
at com.instantiations.designer.core.model.ObjectInfo$5.run(ObjectInfo.java:436)
at com.instantiations.designer.swing.utils.SwingUtils$1.run(SwingUtils.java:63)
at com.instantiations.designer.swing.utils.SwingUtils.invokeLaterAndWait(SwingUtils.java:145)
at com.instantiations.designer.swing.utils.SwingUtils.runLaterAndWait(SwingUtils.java:60)
at com.instantiations.designer.swing.model.component.ComponentInfo.doRefresh(ComponentInfo.java:100)
at com.instantiations.designer.core.model.ObjectInfo.refresh(ObjectInfo.java:433)
at com.instantiations.designer.core.model.ObjectInfo.endEdit(ObjectInfo.java:400)
at com.instantiations.designer.core.utils.execution.ExecutionUtils.run(ExecutionUtils.java:288)
at com.instantiations.designer.core.model.property.GenericPropertyImpl.setValue(GenericPropertyImpl.java:184)
at com.instantiations.designer.core.model.property.editor.BooleanPropertyEditor.invertValue(BooleanPropertyEditor.java:93)
at com.instantiations.designer.core.model.property.editor.BooleanPropertyEditor.activate(BooleanPropertyEditor.java:71)
at com.instantiations.designer.core.model.property.table.PropertyTable.activateEditor(PropertyTable.java:495)
at com.instantiations.designer.core.model.property.table.PropertyTable.handleMouseDown(PropertyTable.java:345)
at com.instantiations.designer.core.model.property.table.PropertyTable.access$8(PropertyTable.java:329)
at com.instantiations.designer.core.model.property.table.PropertyTable$5.mouseDown(PropertyTable.java:157)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3493)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3112)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Found 1 deadlock.
Heap
def new generation total 72576K, used 26469K [0x13810000, 0x186d0000, 0x186d0000)
eden space 64512K, 28% used [0x13810000, 0x14a45790, 0x17710000)
from space 8064K, 97% used [0x17710000, 0x17eb3dd0, 0x17ef0000)
to space 8064K, 0% used [0x17ef0000, 0x17ef0000, 0x186d0000)
tenured generation total 967936K, used 56134K [0x186d0000, 0x53810000, 0x53810000)
the space 967936K, 5% used [0x186d0000, 0x1bda1a00, 0x1bda1a00, 0x53810000)
compacting perm gen total 60672K, used 60603K [0x53810000, 0x57350000, 0x93810000)
the space 60672K, 99% used [0x53810000, 0x5733ee58, 0x5733f000, 0x57350000)
ro space 8192K, 74% used [0x93810000, 0x93e093f0, 0x93e09400, 0x94010000)
rw space 12288K, 59% used [0x94010000, 0x947276e0, 0x94727800, 0x94c10000)
Environment Description:
We use Eclipse 3.5, and the deadlock happens with both 8.0.1 and 8.1.0 versions of WindowBuilderPro.
Our exact java version and OS used:
- Code: Select all
OS:Red Hat Enterprise Linux Client release 5.3 (Tikanga)
uname:Linux 2.6.18-128.el5PAE #1 SMP Wed Dec 17 12:02:33 EST 2008 i686
libc:glibc 2.5 NPTL 2.5
rlimit: STACK 10240k, CORE 0k, NPROC 81920, NOFILE 1024, AS infinity
load average:0.77 0.34 0.32
CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3
Memory: 4k page, physical 4146644k(157604k free), swap 0k(0k free)
vm_info: Java HotSpot(TM) Client VM (14.3-b01) for linux-x86 JRE (1.6.0_17-b04), built on Oct 11 2009 01:17:07 by "java_re" with gcc 3.2.1-7a (J2SE release)
Anyhow, a working workaround is to change to the designer's look and feel to something other then MetalLookAndFeel.
If there is anymore info i can give, please dont hesitate to let me know!
Best Regards,
Shlomi