java - org.eclipse.swt.SWTException: Graphic in Eclipse Graphiti when executing feature -


i working graphiti application , implemented feature modifies attribute of resource. upon changing, notifies implemented resourcesetlistener class , updates respective shape in diagram editor. doing fine , want do, except display popup error saying "graphic disposed".

org.eclipse.swt.swtexception: graphic disposed @ org.eclipse.swt.swt.error(swt.java:4441) @ org.eclipse.swt.swt.error(swt.java:4356) @ org.eclipse.swt.swt.error(swt.java:4327) @ org.eclipse.swt.graphics.font.getfontdata(font.java:184) @ org.eclipse.draw2d.scaledgraphics.getcachedfontdata(scaledgraphics.java:533) @ org.eclipse.draw2d.scaledgraphics.zoomfont(scaledgraphics.java:922) @ org.eclipse.draw2d.scaledgraphics.setlocalfont(scaledgraphics.java:848) @ org.eclipse.draw2d.scaledgraphics.setfont(scaledgraphics.java:767) @ org.eclipse.draw2d.figure.paint(figure.java:1111) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.draw2d.figure.paintclientarea(figure.java:1202) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.draw2d.figure.paintclientarea(figure.java:1202) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.draw2d.figure.paintclientarea(figure.java:1206) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.draw2d.figure.paintclientarea(figure.java:1202) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.draw2d.figure.paintclientarea(figure.java:1202) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.graphiti.ui.internal.fixed.fixedscalablefreeformlayeredpane.paintclientarea(fixedscalablefreeformlayeredpane.java:53) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.draw2d.figure.paintclientarea(figure.java:1202) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.draw2d.figure.paintclientarea(figure.java:1197) @ org.eclipse.draw2d.viewport.paintclientarea(viewport.java:160) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.figure.paintchildren(figure.java:1167) @ org.eclipse.draw2d.figure.paintclientarea(figure.java:1202) @ org.eclipse.draw2d.figure.paint(figure.java:1117) @ org.eclipse.draw2d.deferredupdatemanager.paint(deferredupdatemanager.java:165) @ org.eclipse.draw2d.lightweightsystem.paint(lightweightsystem.java:203) @ org.eclipse.draw2d.lightweightsystem$2.handleevent(lightweightsystem.java:110) @ org.eclipse.swt.widgets.eventtable.sendevent(eventtable.java:84) @ org.eclipse.swt.widgets.display.sendevent(display.java:4353) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1061) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1085) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1070) @ org.eclipse.swt.widgets.composite.wm_paint(composite.java:1491) @ org.eclipse.swt.widgets.control.windowproc(control.java:4667) @ org.eclipse.swt.widgets.canvas.windowproc(canvas.java:339) @ org.eclipse.swt.widgets.display.windowproc(display.java:5036) @ org.eclipse.swt.internal.win32.os.redrawwindow(native method) @ org.eclipse.swt.widgets.control.update(control.java:4436) @ org.eclipse.swt.widgets.control.update(control.java:4426) @ org.eclipse.jface.fieldassist.examplecontroldecoration.update(examplecontroldecoration.java:1060) @ org.eclipse.jface.fieldassist.examplecontroldecoration.setimage(examplecontroldecoration.java:947) @ com.myproject.example.common.control.exampledecoratedfield.showdecoration(exampledecoratedfield.java:215) @ com.myproject.example.common.control.exampledecoratedfield.setcontentassistmessage(exampledecoratedfield.java:160) @ com.myproject.example.common.control.exampletextfield.setfieldmessage(exampletextfield.java:113) @ com.myproject.example.common.control.exampletextfield.<init>(exampletextfield.java:95) @ com.myproject.example.common.properties.exampleabstractpropertypage.createtextfield2(exampleabstractpropertypage.java:725) @ com.myproject.example.common.properties.exampleabstractpropertypage.createtextfield(exampleabstractpropertypage.java:649) @ com.myproject.example.common.properties.exampleabstractpropertypage.createfield(exampleabstractpropertypage.java:516) @ com.myproject.example.propertypages.examplecommondescriptionpp.createcontrol(examplecommondescriptionpp.java:81) @ com.myproject.example.common.properties.exampleabstractpropertypage.createcontrols(exampleabstractpropertypage.java:273) @ org.eclipse.ui.views.properties.tabbed.tabcontents$1.run(tabcontents.java:109) @ org.eclipse.core.runtime.saferunner.run(saferunner.java:42) @ org.eclipse.ui.internal.jfaceutil$1.run(jfaceutil.java:50) @ org.eclipse.jface.util.saferunnable.run(saferunnable.java:178) @ org.eclipse.ui.views.properties.tabbed.tabcontents.createcontrols(tabcontents.java:112) @ org.eclipse.ui.views.properties.tabbed.tabbedpropertysheetpage$selectionchangedlistener.selectionchanged(tabbedpropertysheetpage.java:206) @ org.eclipse.jface.viewers.viewer$2.run(viewer.java:163) @ org.eclipse.core.runtime.saferunner.run(saferunner.java:42) @ org.eclipse.ui.internal.jfaceutil$1.run(jfaceutil.java:50) @ org.eclipse.jface.util.saferunnable.run(saferunnable.java:178) @ org.eclipse.jface.viewers.viewer.fireselectionchanged(viewer.java:160) @ org.eclipse.jface.viewers.structuredviewer.updateselection(structuredviewer.java:2171) @ org.eclipse.jface.viewers.structuredviewer.handleselect(structuredviewer.java:1202) @ org.eclipse.jface.viewers.structuredviewer$4.widgetselected(structuredviewer.java:1231) @ org.eclipse.jface.util.openstrategy.fireselectionevent(openstrategy.java:242) @ org.eclipse.jface.util.openstrategy.access$4(openstrategy.java:236) @ org.eclipse.jface.util.openstrategy$1.handleevent(openstrategy.java:408) @ org.eclipse.swt.widgets.eventtable.sendevent(eventtable.java:84) @ org.eclipse.swt.widgets.display.sendevent(display.java:4353) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1061) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1085) @ org.eclipse.swt.widgets.widget.sendevent(widget.java:1070) @ org.eclipse.swt.widgets.widget.notifylisteners(widget.java:782) @ org.eclipse.ui.internal.views.properties.tabbed.view.tabbedpropertylist.select(tabbedpropertylist.java:864) @ org.eclipse.ui.internal.views.properties.tabbed.view.tabbedpropertyviewer.setselectiontowidget(tabbedpropertyviewer.java:122) @ org.eclipse.jface.viewers.structuredviewer.setselectiontowidget(structuredviewer.java:1749) @ org.eclipse.jface.viewers.structuredviewer.setselection(structuredviewer.java:1705) @ org.eclipse.jface.viewers.viewer.setselection(viewer.java:388) @ org.eclipse.ui.views.properties.tabbed.tabbedpropertysheetpage.setinput(tabbedpropertysheetpage.java:748) @ org.eclipse.ui.views.properties.tabbed.tabbedpropertysheetpage.selectionchanged(tabbedpropertysheetpage.java:556) @ org.eclipse.ui.views.properties.propertysheet.selectionchanged(propertysheet.java:365) @ org.eclipse.ui.internal.e4.compatibility.selectionservice.notifylisteners(selectionservice.java:218) @ org.eclipse.ui.internal.e4.compatibility.selectionservice.handlepostselectionchanged(selectionservice.java:122) @ org.eclipse.ui.internal.e4.compatibility.selectionservice.access$1(selectionservice.java:112) @ org.eclipse.ui.internal.e4.compatibility.selectionservice$3.selectionchanged(selectionservice.java:80) @ org.eclipse.e4.ui.internal.workbench.selectionaggregator$4.run(selectionaggregator.java:166) @ org.eclipse.core.runtime.saferunner.run(saferunner.java:42) @ org.eclipse.e4.ui.internal.workbench.selectionaggregator.notifypostlisteners(selectionaggregator.java:163) @ org.eclipse.e4.ui.internal.workbench.selectionaggregator.access$8(selectionaggregator.java:160) @ org.eclipse.e4.ui.internal.workbench.selectionaggregator$8$1.run(selectionaggregator.java:272) @ org.eclipse.e4.core.contexts.runandtrack.runexternalcode(runandtrack.java:56) @ org.eclipse.e4.ui.internal.workbench.selectionaggregator$8.changed(selectionaggregator.java:269) @ org.eclipse.e4.core.internal.contexts.trackablecomputationext.update(trackablecomputationext.java:110) @ org.eclipse.e4.core.internal.contexts.eclipsecontext.processscheduled(eclipsecontext.java:338) @ org.eclipse.e4.core.internal.contexts.eclipsecontext.set(eclipsecontext.java:352) @ org.eclipse.e4.ui.internal.workbench.selectionserviceimpl.setpostselection(selectionserviceimpl.java:36) @ org.eclipse.ui.internal.e4.compatibility.compatibilitypart$3.selectionchanged(compatibilitypart.java:127) @ org.eclipse.gef.ui.parts.abstracteditpartviewer.fireselectionchanged(abstracteditpartviewer.java:247) @ org.eclipse.gef.ui.parts.abstracteditpartviewer$1.run(abstracteditpartviewer.java:131) @ org.eclipse.gef.selectionmanager.fireselectionchanged(selectionmanager.java:144) @ org.eclipse.gef.selectionmanager.deselect(selectionmanager.java:118) @ org.eclipse.gef.ui.parts.abstracteditpartviewer.deselect(abstracteditpartviewer.java:202) @ org.eclipse.gef.editparts.abstracteditpart.removenotify(abstracteditpart.java:942) @ org.eclipse.gef.editparts.abstractgraphicaleditpart.removenotify(abstractgraphicaleditpart.java:823) @ org.eclipse.gef.editparts.abstracteditpart.removechild(abstracteditpart.java:880) @ org.eclipse.graphiti.ui.internal.parts.shapeeditpart.deletechildandrefresh(shapeeditpart.java:153) @ org.eclipse.graphiti.ui.internal.parts.pictogramelementdelegate.refreshfigureforeditpart(pictogramelementdelegate.java:357) @ org.eclipse.graphiti.ui.internal.parts.shapeeditpart.refreshvisuals(shapeeditpart.java:699) @ org.eclipse.gef.editparts.abstracteditpart.refresh(abstracteditpart.java:725) @ org.eclipse.gef.editparts.abstractgraphicaleditpart.refresh(abstractgraphicaleditpart.java:644) @ org.eclipse.graphiti.ui.internal.parts.shapeeditpart.refresh(shapeeditpart.java:594) @ org.eclipse.graphiti.ui.internal.parts.pictogramelementdelegate.refresheditpartsformodelchildrenandsourceconnections(pictogramelementdelegate.java:313) @ org.eclipse.graphiti.ui.internal.parts.shapeeditpart.refreshchildren(shapeeditpart.java:680) @ org.eclipse.gef.editparts.abstracteditpart.refresh(abstracteditpart.java:726) @ org.eclipse.gef.editparts.abstractgraphicaleditpart.refresh(abstractgraphicaleditpart.java:644) @ org.eclipse.graphiti.ui.internal.parts.shapeeditpart.refresh(shapeeditpart.java:594) @ org.eclipse.graphiti.ui.internal.parts.pictogramelementdelegate.refresheditpartsformodelchildrenandsourceconnections(pictogramelementdelegate.java:313) @ org.eclipse.graphiti.ui.internal.parts.shapeeditpart.refreshchildren(shapeeditpart.java:680) @ org.eclipse.gef.editparts.abstracteditpart.refresh(abstracteditpart.java:726) @ org.eclipse.gef.editparts.abstractgraphicaleditpart.refresh(abstractgraphicaleditpart.java:644) @ org.eclipse.graphiti.ui.internal.parts.shapeeditpart.refresh(shapeeditpart.java:594) @ org.eclipse.graphiti.ui.internal.parts.diagrameditpart.refresh(diagrameditpart.java:187) @ org.eclipse.graphiti.ui.editor.defaultrefreshbehavior.internalrefresheditpart(defaultrefreshbehavior.java:262) @ org.eclipse.graphiti.ui.editor.defaultrefreshbehavior.refresh(defaultrefreshbehavior.java:175) @ org.eclipse.graphiti.ui.editor.diagrambehavior.refresh(diagrambehavior.java:771) @ org.eclipse.graphiti.ui.internal.editor.diagramrefreshjob.runinuithread(diagramrefreshjob.java:103) @ org.eclipse.graphiti.ui.internal.editor.diagramchangelistener.resourcesetchanged(diagramchangelistener.java:151) @ org.eclipse.emf.transaction.impl.transactionaleditingdomainimpl$1.run(transactionaleditingdomainimpl.java:781) @ org.eclipse.emf.transaction.impl.transactionaleditingdomainimpl.runexclusive(transactionaleditingdomainimpl.java:328) @ org.eclipse.emf.transaction.impl.transactionaleditingdomainimpl.postcommit(transactionaleditingdomainimpl.java:771) @ org.eclipse.emf.transaction.impl.transactionaleditingdomainimpl.deactivate(transactionaleditingdomainimpl.java:543) @ org.eclipse.emf.transaction.impl.transactionimpl.close(transactionimpl.java:712) @ org.eclipse.emf.transaction.impl.transactionimpl.commit(transactionimpl.java:474) @ org.eclipse.emf.workspace.abstractemfoperation.execute(abstractemfoperation.java:155) @ org.eclipse.core.commands.operations.defaultoperationhistory.execute(defaultoperationhistory.java:513) @ org.eclipse.emf.workspace.impl.workspacecommandstackimpl.doexecute(workspacecommandstackimpl.java:208) @ org.eclipse.emf.transaction.impl.abstracttransactionalcommandstack.execute(abstracttransactionalcommandstack.java:165) @ org.eclipse.graphiti.ui.internal.editor.gfworkspacecommandstackimpl.execute(gfworkspacecommandstackimpl.java:84) @ org.eclipse.graphiti.ui.internal.editor.gfcommandstack.execute(gfcommandstack.java:138) @ org.eclipse.graphiti.ui.editor.diagrambehavior.executefeature(diagrambehavior.java:1088) @ com.myproject.example.screen.diagram.examplemodelchangelistener$1.run(examplemodelchangelistener.java:135) @ org.eclipse.swt.widgets.runnablelock.run(runnablelock.java:35) @ org.eclipse.swt.widgets.synchronizer.runasyncmessages(synchronizer.java:136) @ org.eclipse.swt.widgets.display.runasyncmessages(display.java:4147) @ org.eclipse.swt.widgets.display.readanddispatch(display.java:3764) @ org.eclipse.e4.ui.internal.workbench.swt.partrenderingengine$9.run(partrenderingengine.java:1151) @ org.eclipse.core.databinding.observable.realm.runwithdefault(realm.java:332) @ org.eclipse.e4.ui.internal.workbench.swt.partrenderingengine.run(partrenderingengine.java:1032) @ org.eclipse.e4.ui.internal.workbench.e4workbench.createandrunui(e4workbench.java:148) @ org.eclipse.ui.internal.workbench$5.run(workbench.java:636) @ org.eclipse.core.databinding.observable.realm.runwithdefault(realm.java:332) @ org.eclipse.ui.internal.workbench.createandrunworkbench(workbench.java:579) @ org.eclipse.ui.platformui.createandrunworkbench(platformui.java:150) @ org.eclipse.ui.internal.ide.application.ideapplication.start(ideapplication.java:135) @ org.eclipse.equinox.internal.app.eclipseapphandle.run(eclipseapphandle.java:196) @ org.eclipse.core.runtime.internal.adaptor.eclipseapplauncher.runapplication(eclipseapplauncher.java:134) @ org.eclipse.core.runtime.internal.adaptor.eclipseapplauncher.start(eclipseapplauncher.java:104) @ org.eclipse.core.runtime.adaptor.eclipsestarter.run(eclipsestarter.java:380) @ org.eclipse.core.runtime.adaptor.eclipsestarter.run(eclipsestarter.java:235) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source) @ java.lang.reflect.method.invoke(unknown source) @ org.eclipse.equinox.launcher.main.invokeframework(main.java:648) @ org.eclipse.equinox.launcher.main.basicrun(main.java:603) @ org.eclipse.equinox.launcher.main.run(main.java:1465) @ org.eclipse.equinox.launcher.main.main(main.java:1438) 

i don't know graphiti sounds listener being called after controls have been disposed (that window has closed). can case listeners called asynchronously.

add check in listener control being disposed:

if (!control.isdisposed())   {    ... work  } 

Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -