Bug 451374 - FileNotFoundException on Modeling Project opening
Summary: FileNotFoundException on Modeling Project opening
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Core (show other bugs)
Version: 2.0.0   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2014-11-13 11:35 EST by Esteban DUGUEPEROUX CLA
Modified: 2015-06-18 04:48 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 Esteban DUGUEPEROUX CLA 2014-11-13 11:35:13 EST
This bugzilla is created to manage issue of https://bugs.eclipse.org/bugs/show_bug.cgi?id=447865 .

I can't reproduce the exception of https://bugs.eclipse.org/bugs/show_bug.cgi?id=447865 but indeed there is an issue because even if IResource.exists() return true, the file behind could be inexistant because the IResource is not refreshed. Then before calling IResource.exists() we must call IResource.refreshLocal(IResource.

With the following scenario which could reproduce the initial exception, I get another exception :

1. Import BigModel project example from https://bugs.eclipse.org/bugs/show_bug.cgi?id=449962
2. Convert it to a Modeling Project
3. Open a represenation, save and exit Eclipse
4. Outside Eclipse remove the .aird file
5. Restart Eclipse and you get the following exception :

java.io.FileNotFoundException: /home/esteban/Obeo/runtime-New_configuration/BigModel/MyBig.aird (Aucun fichier ou dossier de ce type)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:140)
	at org.eclipse.sirius.business.internal.session.parser.RepresentationsFileSaxParser.analyze(RepresentationsFileSaxParser.java:70)
	at org.eclipse.sirius.business.internal.query.ModelingProjectQuery.computeMainRepresentationsFileURI(ModelingProjectQuery.java:92)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI(ModelingProject.java:221)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI(ModelingProject.java:183)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getSession(ModelingProject.java:157)
	at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonLabelProvider.getText(SiriusCommonLabelProvider.java:181)
	at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider.findStyledText(NavigatorContentServiceLabelProvider.java:171)
	at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider.getStyledText(NavigatorContentServiceLabelProvider.java:151)
	at org.eclipse.ui.internal.navigator.NavigatorDecoratingLabelProvider$StyledLabelProviderAdapter.getStyledText(NavigatorDecoratingLabelProvider.java:67)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.getStyledText(DelegatingStyledCellLabelProvider.java:206)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.getStyledText(DecoratingStyledCellLabelProvider.java:199)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.update(DelegatingStyledCellLabelProvider.java:106)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:136)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:154)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:949)
	at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:114)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1029)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:472)
Comment 1 Esteban DUGUEPEROUX CLA 2014-11-13 11:48:50 EST
https://git.eclipse.org/r/36420 has been raised
Comment 2 Esteban DUGUEPEROUX CLA 2014-11-13 11:54:21 EST
This Gerrit avoid the exception, but there is yet diagram editor opened with a GMF note. We could avoid this if editor opening could be cancelled, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=451376 .
Comment 3 Esteban DUGUEPEROUX CLA 2014-11-20 03:58:26 EST
Doing refresh of workspace when being in a ResourceDeltaVisitor display "The resource tree is locked for modifications" log. It is because we change the workspace outside of WorkspaceModifyOperation : 

org.eclipse.core.internal.resources.ResourceException: The resource tree is locked for modifications.
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:116)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2251)
	at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1697)
	at org.eclipse.sirius.common.tools.api.util.WorkspaceUtil.getWorkspaceFiles(WorkspaceUtil.java:94)
	at org.eclipse.sirius.common.tools.api.util.WorkspaceUtil.getFilesFromWorkspace(WorkspaceUtil.java:59)
	at org.eclipse.sirius.business.internal.query.ModelingProjectQuery.getRepresentationFiles(ModelingProjectQuery.java:67)
	at org.eclipse.sirius.business.internal.query.ModelingProjectQuery.computeMainRepresentationsFileURI(ModelingProjectQuery.java:87)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI(ModelingProject.java:221)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI(ModelingProject.java:183)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getSession(ModelingProject.java:157)
	at org.eclipse.sirius.ui.tools.api.views.modelexplorerview.resourcelistener.ResourceDeltaVisitor.visitFile(ResourceDeltaVisitor.java:181)
	at org.eclipse.sirius.ui.tools.api.views.modelexplorerview.resourcelistener.ResourceDeltaVisitor.visit(ResourceDeltaVisitor.java:88)
	at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:69)
	at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:80)
	at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:80)
	at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:49)
	at org.eclipse.sirius.ui.tools.api.views.modelexplorerview.resourcelistener.DefaultModelingProjectResourceListener.resourceChanged(DefaultModelingProjectResourceListener.java:81)
	at fr.obeo.dsl.viewpoint.collab.ui.internal.views.SharedModelingProjectResourceListener.resourceChanged(SharedModelingProjectResourceListener.java:50)
	at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
	at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
	at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:378)
	at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1498)
	at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1718)
	at org.eclipse.core.internal.resources.File.refreshLocal(File.java:334)
	at org.eclipse.sirius.common.tools.api.util.WorkspaceUtil.getWorkspaceFiles(WorkspaceUtil.java:94)
	at org.eclipse.sirius.common.tools.api.util.WorkspaceUtil.getWorkspaceFiles(WorkspaceUtil.java:100)
	at org.eclipse.sirius.common.tools.api.util.WorkspaceUtil.getFilesFromWorkspace(WorkspaceUtil.java:59)
	at org.eclipse.sirius.business.internal.query.ModelingProjectQuery.getRepresentationFiles(ModelingProjectQuery.java:67)
	at org.eclipse.sirius.business.internal.query.ModelingProjectQuery.computeMainRepresentationsFileURI(ModelingProjectQuery.java:87)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI(ModelingProject.java:221)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getMainRepresentationsFileURI(ModelingProject.java:183)
	at org.eclipse.sirius.business.api.modelingproject.ModelingProject.getSession(ModelingProject.java:157)
	at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonLabelProvider.getText(SiriusCommonLabelProvider.java:181)
	at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider.findStyledText(NavigatorContentServiceLabelProvider.java:171)
	at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider.getStyledText(NavigatorContentServiceLabelProvider.java:151)
	at org.eclipse.ui.internal.navigator.NavigatorDecoratingLabelProvider$StyledLabelProviderAdapter.getStyledText(NavigatorDecoratingLabelProvider.java:67)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.getStyledText(DelegatingStyledCellLabelProvider.java:206)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.getStyledText(DecoratingStyledCellLabelProvider.java:199)
	at org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.update(DelegatingStyledCellLabelProvider.java:106)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:136)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:154)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:949)
	at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:114)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1029)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:472)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:178)
	at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2150)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:843)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:818)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:791)
	at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:611)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:762)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1543)
	at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:790)
	at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1527)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1436)
	at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:366)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1397)
	at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1519)
	at org.eclipse.sirius.ui.tools.internal.views.common.navigator.filter.FilteredCommonTree$NotifyingCommonViewer.inputChanged(FilteredCommonTree.java:1152)
	at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:292)
	at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1675)
	at org.eclipse.ui.navigator.CommonNavigator.createPartControl(CommonNavigator.java:212)
	at org.eclipse.sirius.ui.tools.internal.views.modelexplorer.ModelExplorerView.createPartControl(ModelExplorerView.java:90)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:141)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityView.createPartControl(CompatibilityView.java:155)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:327)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:622)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:888)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:869)
	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:120)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:337)
	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:258)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:104)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:73)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:55)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:127)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$6.run(PartRenderingEngine.java:547)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:531)
	at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:69)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1250)
	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:100)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:103)
	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:100)
	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:77)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
	at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:185)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:68)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:664)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1078)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	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:636)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
	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(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:622)
	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)

A more deep change is needed to avoid this exception.
Comment 4 Esteban DUGUEPEROUX CLA 2014-11-20 04:29:31 EST
Even if we don't refresh IResource in MarkerUtil/WorkspaceUtil, there remains others path where IResource.refresh() is called outside WorkspaceModifyOperation, for example with memento to opened dialect editor at startup :

File(Resource).refreshLocal(int, IProgressMonitor) line: 1714	
File.refreshLocal(int, IProgressMonitor) line: 333	
PlatformResourceURIHandlerImpl$WorkbenchHelper.createPlatformResourceInputStream(String, Map<?,?>) line: 200	
PlatformResourceURIHandlerImpl.createInputStream(URI, Map<?,?>) line: 482	
ExtensibleURIConverterImpl.createInputStream(URI, Map<?,?>) line: 354	
ExtensibleURIConverterImpl.createInputStream(URI) line: 348	
RepresentationsFileVersionSAXParser(AbstractVersionSAXParser).getVersion(IProgressMonitor) line: 73	
AirDResourceFactory.createResource(URI) line: 101	
ResourceSetImpl.createResource(URI, String) line: 434	
ResourceSetImpl.createResource(URI) line: 423	
CollaborativeSessionFactoryImpl.createSessionResource(URI, TransactionalEditingDomain, Class<?>, IProgressMonitor) line: 239	
CollaborativeSessionFactoryImpl.createCollaborativeSession(URI, IProgressMonitor) line: 99	
CollaborativeSessionFactoryImpl.createSession(URI, IProgressMonitor) line: 76	
SessionManagerImpl.getSession(URI, IProgressMonitor) line: 286	
SessionEditorInput.getSession(URI) line: 166	
SessionEditorInput.loadState(IMemento) line: 150	
SessionEditorInput(URIEditorInput).<init>(IMemento) line: 54	
SessionEditorInput.<init>(IMemento) line: 84	
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]
Comment 5 Esteban DUGUEPEROUX CLA 2014-11-20 05:01:36 EST
A better fix instead of calling IResource.refreshLocal() in WorkspaceUtil is to have callers of this WorkspaceUtil.getFilesFromWorkspace() check that returned IFile has corresponding java.io.File.