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

Bug 328980

Summary: [Validation] Validation marker cause ModelExplorer collapse after renaming
Product: [Modeling] Papyrus Reporter: Yann Tanguy <yann.tanguy>
Component: CoreAssignee: Ansgar Radermacher <ansgar.radermacher>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P3    
Version: 0.7.1   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Bug Depends on:    
Bug Blocks: 313986    

Description Yann Tanguy CLA 2010-10-28 16:34:08 EDT
To reproduce :
- Create a model and provoke validation errors
- Close the model
- Rename the project containing the model

The following exception is thrown:

java.util.MissingResourceException: The string resource 'platform:/resource/TestSD/model.di' could not be located
	at org.eclipse.papyrus.core.resourceloading.impl.ProxyManager.getEObjectFromStrategy(ProxyManager.java:159)
	at org.eclipse.papyrus.core.resourceloading.OnDemandLoadingModelSet.getEObject(OnDemandLoadingModelSet.java:78)
	at org.eclipse.papyrus.modelexplorer.validation.ValidationTool.eObjectOfMarker(ValidationTool.java:88)
	at org.eclipse.papyrus.modelexplorer.MoDiscoLabelProvider.getImage(MoDiscoLabelProvider.java:106)
	at org.eclipse.papyrus.modelexplorer.MoDiscoLabelProviderWTooltips.getImage(MoDiscoLabelProviderWTooltips.java:58)
	at org.eclipse.jface.viewers.ColumnLabelProvider.update(ColumnLabelProvider.java:37)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:152)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:934)
	at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:102)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1014)
	at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:481)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
	at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2141)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:829)
	at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:804)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:778)
	at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
	at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:749)
	at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:1444)
	at org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeViewer.java:952)
	at org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:1455)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:132)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:7408)
	at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5096)
	at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1887)
	at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:4726)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4215)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2362)
	at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1536)
	at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:6303)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4195)
	at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5844)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Comment 1 Ansgar Radermacher CLA 2010-10-29 13:53:17 EDT
The error should be fixed in the sense that the exception is catched, i.e. the eObject in the marker is not resolved and no decorators are shown until the user restarts the validation.
I'm not sure if it would be a good idea to try to correct the path stored in the marker's URI descriptor, e.g. check if the suffix of the URI descriptor (filename without path) is identical to the underlying resource name and replace the path.
Comment 2 Camille Letavernier CLA 2013-03-22 13:40:47 EDT
> The error should be fixed in the sense that the exception is catched, i.e. the eObject in the marker is not resolved and no decorators are shown until the user restarts the validation.

I close this task