Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 148412

Summary: DeferredUpdateManager will validate after Control is diposed(), 2
Product: [Tools] GEF Reporter: Paul E. Keyser <rolarenfan>
Component: GEF-Legacy Draw2dAssignee: gef-inbox <gef-inbox>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: P3    
Version: 3.1.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard: Bugzilla 3.4 Migration

Description Paul E. Keyser CLA 2006-06-23 12:58:33 EDT
Either I am seeing Bug 24716 again, or a similar one. I get this call-stack after disposing the canvas containing my figure:

org.eclipse.swt.SWTException: Widget is disposed
    at org.eclipse.swt.SWT.error(SWT.java:2942)
    at org.eclipse.swt.SWT.error(SWT.java:2865)
    at org.eclipse.swt.SWT.error(SWT.java:2836)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:395)
    at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:297)
    at org.eclipse.swt.widgets.Scrollable.getVerticalBar(Scrollable.java:187)
    at org.eclipse.draw2d.FigureCanvas$2.propertyChange(FigureCanvas.java:72)
    at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
    at org.eclipse.draw2d.DefaultRangeModel.firePropertyChange(DefaultRangeModel.java:60)
    at org.eclipse.draw2d.DefaultRangeModel.setAll(DefaultRangeModel.java:118)
    at org.eclipse.draw2d.Viewport.readjustScrollBars(Viewport.java:203)
    at org.eclipse.draw2d.Viewport.validate(Viewport.java:364)
    at org.eclipse.draw2d.Figure.validate(Figure.java:1738)
    at org.eclipse.draw2d.DeferredUpdateManager.validateFigures(DeferredUpdateManager.java:271)
    at org.eclipse.draw2d.DeferredUpdateManager.performUpdate(DeferredUpdateManager.java:143)
    at org.eclipse.draw2d.DeferredUpdateManager$UpdateRequest.run(DeferredUpdateManager.java:40)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3102)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2761)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
Comment 1 Randy Hudson CLA 2006-06-23 14:49:29 EDT
Please provide steps to reproduce.
Comment 2 Paul E. Keyser CLA 2006-06-27 16:51:32 EDT
(In reply to comment #1)
> Please provide steps to reproduce.
> 
It's intermittant; if I create a simple plugin in which it at least *sometimes* occurs, would that be of any use? 


Comment 3 Randy Hudson CLA 2006-06-27 17:29:44 EDT
If you could create an SWT + draw2d snippet, that would be even better. Intermittent is not a problem, but you should be able to programmatically trigger the steps, such as update a figure and then dispose the canvas.
Comment 4 Anthony Hunter CLA 2009-08-24 12:01:48 EDT
LATER and REMIND resolutions will be going away with the upgrade of Bugzilla to the latest Bugzilla 3.4.  They are no longer part of the default Bugzilla installation. See http://dev.eclipse.org/mhonarc/lists/eclipse.org-committers/msg00778.html for the announcement.

As a result 
RESOLVED + REMIND OR LATER 
will be changed to
RESOLVED + WONTFIX

This unfortunately also means I need to REOPEN and then RESOLVE as WONTFIX

Sorry for the inconvenience.
Comment 5 Anthony Hunter CLA 2009-08-24 12:14:51 EDT
LATER and REMIND resolutions will be going away with the upgrade of Bugzilla to the latest Bugzilla 3.4.  They are no longer part of the default Bugzilla installation. See http://dev.eclipse.org/mhonarc/lists/eclipse.org-committers/msg00778.html for the announcement.

As a result 
RESOLVED + REMIND OR LATER 
will be changed to
RESOLVED + WONTFIX

This unfortunately also means I need to REOPEN and then RESOLVE as WONTFIX

Sorry for the inconvenience.