Community
Participate
Working Groups
Created attachment 204732 [details] Model to reproduce the bug Hi, I'm currently using MDT Papyrus as modeller. And I get an error when handling stereotyped uml element. If the difference to see is an "UpdateReference" of a property of the stereotype. I get the following error: java.lang.IllegalArgumentException: The feature 'Property0' is not a valid feature at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eOpenGet(BasicEObjectImpl.java:1072) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1025) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1013) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1008) at org.eclipse.emf.compare.diff.provider.UpdateReferenceItemProvider.getLeftValue(UpdateReferenceItemProvider.java:177) at org.eclipse.emf.compare.diff.provider.UpdateReferenceItemProvider.getImage(UpdateReferenceItemProvider.java:68) at org.eclipse.emf.compare.uml2diff.provider.UMLStereotypeUpdateReferenceItemProvider.getImage(UMLStereotypeUpdateReferenceItemProvider.java:158) at org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider.getImage(AdapterFactoryLabelProvider.java:336) at org.eclipse.emf.compare.ui.viewer.structure.ModelStructureMergeViewer$ModelStructureLabelProvider.getImage(ModelStructureMergeViewer.java:441) at org.eclipse.jface.viewers.WrappedViewerLabelProvider.getImage(WrappedViewerLabelProvider.java:117) at org.eclipse.jface.viewers.WrappedViewerLabelProvider.update(WrappedViewerLabelProvider.java:165) at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:152) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:938) at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:106) 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:1018) at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:485) 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:2167) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:833) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:808) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:782) at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:753) at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:1485) at org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeViewer.java:952) at org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:1496) 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:7538) at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5534) at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1896) at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5086) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4584) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972) at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2424) at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1533) at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:6411) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4564) at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5937) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2530) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) I will put my models as attachment.
Created attachment 204733 [details] Possible correction I think this patch might correct this bug but I may also missed to impact problem
An other solution would may be to change the org.eclipse.emf.compare.uml2diff.provider.UMLStereotypeUpdateReferenceItemProvider.getImage(Object) implementation.
Created attachment 204737 [details] Nicer possible correction This might be a nicer correction
I reproduced the bug with the models you gave us. I'll look into your patch.
As the UMLDiff Extension extends the generic diff, I would expect this specific code to handle the stereotype references to be in the specialized umldiff.edit and not the generic one. I did the change in commit eefaf5e570f20c2b5ec1b6304b0d84c195b7023d. You'll get the fix in the next 1.3 build. We need a testcase to make sure other issues like this on getText/getImage won't happen on some comparison cases, it sounds pretty easy to setup, just diffing models and calling the adapter factory on each diff, then building an UML model adding elements and changes so that we get a proper code coverage. I'll track another bug for that.
batch-closing a bunch of "RESOLVED" bugs.