I am developing a GMF application .

In this situation , I start my workspace and load a file in the workspace . Then I close the workspace and then delete the file from the workspace . After that, I try to restart my application and restore the workspace . Of course , now since the file does not exist , there are going to be exceptions . I tried a lot to handle these exceptions but if I try to get rid of one exception , then another pops up .

Does anyone know what methods do I have to override in order to handle this situation correctly . I am attaching the stacktrace that I get in this exception for a better picture .

org.eclipse.core.runtime.CoreException: ERROR
at org.eclipse.gmf.runtime.diagram.ui.resources.edito r.parts.DiagramDocumentEditor.createPartControl(Di agramDocumentEditor.java:1509)
at com.fnfr.itest.topology.tbml.diagram.custom.part.S ingleFileTbmlDiagramEditor.createPartControl(Singl eFileTbmlDiagramEditor.java:120)
at org.eclipse.ui.internal.EditorReference.createPart Helper(EditorReference.java:662)
at org.eclipse.ui.internal.EditorReference.createPart (EditorReference.java:462)
at org.eclipse.ui.internal.WorkbenchPartReference.get Part(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.EditorAreaHelper.setVisibl eEditor(EditorAreaHelper.java:271)
at org.eclipse.ui.internal.EditorManager.setVisibleEd itor(EditorManager.java:1417)
at org.eclipse.ui.internal.EditorManager$5.runWithExc eption(EditorManager.java:942)
at org.eclipse.ui.internal.StartupThreading$StartupRu nnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableL ock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessa ges(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(D isplay.java:3855)
at org.eclipse.swt.widgets.Display.readAndDispatch(Di splay.java:3476)
at org.eclipse.ui.application.WorkbenchAdvisor.openWi ndows(WorkbenchAdvisor.java:803)
at org.eclipse.ui.internal.Workbench$28.runWithExcept ion(Workbench.java:1384)
at org.eclipse.ui.internal.StartupThreading$StartupRu nnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableL ock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessa ges(Synchronizer.java:134)
at org.eclipse.swt.widgets.Display.runAsyncMessages(D isplay.java:3855)
at org.eclipse.swt.widgets.Display.readAndDispatch(Di splay.java:3476)
at org.eclipse.ui.internal.Workbench.runUI(Workbench. java:2316)
at org.eclipse.ui.internal.Workbench.access$4(Workben ch.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench. java:500)
at org.eclipse.core.databinding.observable.Realm.runW ithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWork bench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Pl atformUI.java:149)
at com.fnfr.svt.rcp.Application.runWorkbench(Applicat ion.java:205)
at com.fnfr.svt.rcp.Application.start(Application.jav a:190)
at org.eclipse.equinox.internal.app.EclipseAppHandle. run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseA ppLauncher.runApplication(EclipseAppLauncher.java: 110)
at org.eclipse.core.runtime.internal.adaptor.EclipseA ppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.ru n(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.ru n(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework( Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.ja va:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:13 11)