Deadlock in designer

Swing Designer allows you to quickly create the frames, panels, dialogs, applets and other UI elements that comprise Java Swing applications.

Moderators: Konstantin.Scheglov, gnebling, Alexander.Mitin, jwren, Eric Clayberg

Deadlock in designer

Postby Shlomi » Sun Nov 07, 2010 5:59 am

Hello,

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
Shlomi
 
Posts: 14
Joined: Thu Mar 02, 2006 7:03 am

Re: Deadlock in designer

Postby Alexander.Mitin » Sun Nov 07, 2010 9:19 am

We added a workaround for this, it should be available in the next beta update.
Alexander Mitin
Alexander.Mitin
Moderator
 
Posts: 155
Joined: Fri Jan 19, 2007 3:57 am

Re: Deadlock in designer

Postby Shlomi » Sun Nov 07, 2010 9:40 am

Alexander.Mitin wrote:We added a workaround for this, it should be available in the next beta uodate.


Great!

How long do you think it will be until it is released (as in non-beta)?

Also, is there a zipped version of the latest beta? our dev computers are offline..

By the way, out of curiosity, is this problem related to the one mentioned in the other thread listed above?

Best Regards,
Shlomi
Shlomi
 
Posts: 14
Joined: Thu Mar 02, 2006 7:03 am

Re: Deadlock in designer

Postby Eric Clayberg » Sun Nov 07, 2010 5:07 pm

The next beta build (containing the work around) will be some time this coming week.

The next public (non beta) build has not been scheduled yet. They will typically follow a 1-3 month time frequency. The most recent was just a couple of weeks ago.

This problem is unrelated to the earlier problem, but it is related to some nasty Linux (only) L&F deadlock bugs we have seen in recent Linux updates.
Eric Clayberg
Software Engineering Manager
Google
http://code.google.com/webtoolkit/download.html

Author: "Eclipse Plug-ins"
http://www.qualityeclipse.com
Eric Clayberg
Moderator
 
Posts: 4503
Joined: Tue Sep 30, 2003 6:39 am
Location: Boston, MA USA

Re: Deadlock in designer

Postby Shlomi » Mon Nov 08, 2010 12:54 am

Hey Eric,

Thanks alot for your support, you are all amazingly responsive!

Could you kindly post here a url for a zipped version of the beta once you have it? I cannot use the update server since we are not connected to the net...

Thanks!
Shlomi
Shlomi
 
Posts: 14
Joined: Thu Mar 02, 2006 7:03 am

Re: Deadlock in designer

Postby Eric Clayberg » Mon Nov 08, 2010 6:07 pm

The latest BETA build is now available...


ZIP'ed archived BETA update sites for Eclipse 3.4 - 3.6 are available at the following links...

Eric Clayberg
Software Engineering Manager
Google
http://code.google.com/webtoolkit/download.html

Author: "Eclipse Plug-ins"
http://www.qualityeclipse.com
Eric Clayberg
Moderator
 
Posts: 4503
Joined: Tue Sep 30, 2003 6:39 am
Location: Boston, MA USA


Return to Swing Designer

Who is online

Users browsing this forum: No registered users and 1 guest

cron