Bug 469017 - org.eclipse.gmf.runtime.draw2d.ui.internal.parts.ThumbnailEx$ThumbnailUpdater.stop() causes SWT error because thumbnailGC is disposed before thumbnailGraphics
Summary: org.eclipse.gmf.runtime.draw2d.ui.internal.parts.ThumbnailEx$ThumbnailUpdater...
Status: UNCONFIRMED
Alias: None
Product: GMF-Runtime
Classification: Modeling
Component: General (show other bugs)
Version: 2.4   Edit
Hardware: All All
: P3 normal
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-06-01 12:41 EDT by EPP Error Reports CLA
Modified: 2015-06-01 12:41 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description EPP Error Reports CLA 2015-06-01 12:41:40 EDT
The root cause for the SWT error reported below is that org.eclipse.gmf.runtime.draw2d.ui.internal.parts.ThumbnailEx$ThumbnailUpdater.stop() disposes the nested thumbnailGC before the enclosing thumbnailGraphics. These statements should be swapped.

In detail the dispose() operation of the used org.eclipse.gmf.runtime.draw2d.ui.internal.graphics.ScaledGraphics performs a popState(), which delegates to restoreState(), which calls getAdvanced() on the already disposed nested GC (thumbnailGC in this case), which ultimately throws an SWT.ERROR_GRAPHIC_DISPOSED. 

The following incident was reported via the automated error reporting:


    code:                   0
    plugin:                 org.eclipse.ui_3.107.0.v20140911-1616
    message:                HIDDEN
    fingerprint:            ad3b2eab
    exception class:        org.eclipse.swt.SWTException
    exception message:      HIDDEN
    number of children:     0
    
    org.eclipse.swt.SWTException: HIDDEN
    at org.eclipse.swt.SWT.error(SWT.java:4441)
    at org.eclipse.swt.SWT.error(SWT.java:4356)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:139)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3778)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3416)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:637)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:580)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:141)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
caused by: org.eclipse.swt.SWTException: HIDDEN
    at org.eclipse.swt.SWT.error(SWT.java:4441)
    at org.eclipse.swt.SWT.error(SWT.java:4356)
    at org.eclipse.swt.SWT.error(SWT.java:4327)
    at org.eclipse.swt.graphics.GC.getAdvanced(GC.java:2270)
    at org.eclipse.draw2d.SWTGraphics.restoreState(SWTGraphics.java:928)
    at org.eclipse.draw2d.SWTGraphics.popState(SWTGraphics.java:828)
    at org.eclipse.gmf.runtime.draw2d.ui.internal.graphics.ScaledGraphics.popState(ScaledGraphics.java:646)
    at org.eclipse.gmf.runtime.draw2d.ui.internal.graphics.ScaledGraphics.dispose(ScaledGraphics.java:271)
    at org.eclipse.gmf.runtime.draw2d.ui.internal.parts.ThumbnailEx$ThumbnailUpdater.stop(ThumbnailEx.java:284)
    at org.eclipse.gmf.runtime.draw2d.ui.internal.parts.ThumbnailEx$ThumbnailUpdater.restart(ThumbnailEx.java:134)
    at org.eclipse.gmf.runtime.draw2d.ui.internal.parts.ThumbnailEx.getThumbnailImage(ThumbnailEx.java:423)
    at org.eclipse.gmf.runtime.draw2d.ui.internal.parts.ThumbnailEx.paintFigure(ThumbnailEx.java:467)
    at org.eclipse.draw2d.Figure.paint(Figure.java:1115)
    at org.eclipse.draw2d.Figure.paintChildren(Figure.java:1167)
    at org.eclipse.draw2d.Figure.paintClientArea(Figure.java:1202)
    at org.eclipse.draw2d.Figure.paint(Figure.java:1117)
    at org.eclipse.draw2d.DeferredUpdateManager.paint(DeferredUpdateManager.java:168)
    at org.eclipse.draw2d.LightweightSystem.paint(LightweightSystem.java:203)
    at org.eclipse.draw2d.LightweightSystem$2.handleEvent(LightweightSystem.java:110)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4464)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1388)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1412)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1397)
    at org.eclipse.swt.widgets.Control.gtk_expose_event(Control.java:3199)
    at org.eclipse.swt.widgets.Composite.gtk_expose_event(Composite.java:740)
    at org.eclipse.swt.widgets.Canvas.gtk_expose_event(Canvas.java:181)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2091)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:5515)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:4680)
    at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(OS.java:-2)
    at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:9137)
    at org.eclipse.swt.widgets.Display.eventProc(Display.java:1253)
    at org.eclipse.swt.internal.gtk.OS._gdk_window_process_updates(OS.java:-2)
    at org.eclipse.swt.internal.gtk.OS.gdk_window_process_updates(OS.java:5976)
    at org.eclipse.swt.widgets.Control.update(Control.java:5460)
    at org.eclipse.swt.widgets.Control.update(Control.java:5451)
    at org.eclipse.draw2d.NativeGraphicsSource.getGraphics(NativeGraphicsSource.java:48)
    at org.eclipse.draw2d.DeferredUpdateManager.getGraphics(DeferredUpdateManager.java:147)
    at org.eclipse.draw2d.DeferredUpdateManager.repairDamage(DeferredUpdateManager.java:313)
    at org.eclipse.draw2d.DeferredUpdateManager.performUpdate(DeferredUpdateManager.java:195)
    at org.eclipse.draw2d.DeferredUpdateManager$UpdateRequest.run(DeferredUpdateManager.java:44)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3778)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3416)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:637)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:580)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:141)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
   
  

General Information:

    reported-by:      
    anonymous-id:     213e8379-5dad-3a05-adb1-02b881704d2b
    eclipse-build-id: 4.5.0.I20140918-0330
    eclipse-product:  org.eclipse.epp.package.modeling.product
    operating system: Linux 3.13.0 (x86_64) - gtk
    jre-version:      1.8.0_20-b26

The following plug-ins were present on the execution stack (*):
    1. org.eclipse.core.databinding.observable_1.4.1.v20140910-2107
    2. org.eclipse.core.databinding_1.4.100.v20140910-2107
    3. org.eclipse.core.runtime_3.10.0.v20140724-1132
    4. org.eclipse.draw2d_3.10.0.201409290206
    5. org.eclipse.e4.ui.workbench_1.2.0.v20140905-1352
    6. org.eclipse.e4.ui.workbench.swt_0.12.100.v20140908-1525
    7. org.eclipse.equinox.app_1.3.200.v20130910-1609
    8. org.eclipse.equinox.launcher_1.3.0.v20140415-2008
    9. org.eclipse.gmf.runtime.draw2d.ui_1.9.0.201409241816
    10. org.eclipse.gmf_1.7.0.201409241816
    11. org.eclipse.swt_3.104.0.v20140916-1012
    12. org.eclipse.ui_3.107.0.v20140911-1616
    13. org.eclipse.ui.ide.application_1.0.600.v20140909-1818
    14. org.eclipse.ui.ide_3.10.100.v20140905-0917

Please note that:
* Messages, stacktraces, and nested status objects may be shortened.
* Bug fields like status, resolution, and whiteboard are sent
  back to reporters.
* The list of present bundles and their respective versions was
  calculated by package naming heuristics. This may or may not reflect reality.

Other Resources:
* Report: https://dev.eclipse.org/recommenders/committers/confess/#/problems/54c4ef20bee810030da06857  
* Manual: https://dev.eclipse.org/recommenders/community/confess/#/guide


Thank you for your assistance.
Your friendly error-reports-inbox.