I have a stereotype property p1 of type metaclass (let's say an
operation). This property is multivalued and non unique (isUnique=false).
In uml2 standard it is then possible to add the same operation twice in p1
value.
In uml2 editor 2.0.2 it is impossible to add the same operation twice in
this case. If I do this programmatically, uml2 editor is unable to open
the model.
The same happens for properties typed by stereotypes.
The following error happens at the opening. In this example I have valued
a multivalued property with the same class stereotyped "Stereotype_0".
org.eclipse.emf.ecore.xmi.IllegalValueException: Value
'org.eclipse.emf.ecore.impl.DynamicEObjectImpl@1ad9c6f (eClass:
org.eclipse.emf.ecore.impl.EClassImpl@14e0f6a (name: Stereotype_0)
(instanceClassName: null) (abstract: false, interface: false))' is not
legal. (platform:/resource/Test/testModel.uml, 25, 1)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.setFeatureValue(XMLHandler.java:2382)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleForwardReferences(XMLHandler.java:991)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.endDocument(XMLHandler.java:1061)
at
org.eclipse.uml2.uml.internal.resource.UMLHandler.endDocument(UMLHandler.java:43)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocument(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.endEntity(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(Unknown
Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipSpaces(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown
Source)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
Source)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:179)
at
org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:179)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1089)
at
org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:895)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:249)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:264)
at
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:390)
at
org.eclipse.uml2.uml.editor.presentation.UMLEditor.createModelGen(UMLEditor.java:879)
at
org.eclipse.uml2.uml.editor.presentation.UMLEditor.createModel(UMLEditor.java:912)
at
org.eclipse.uml2.uml.editor.presentation.UMLEditor.createPages(UMLEditor.java:1012)
at
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:276)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:596)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:372)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:566)
at
org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:214)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2588)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2521)
at
org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2513)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2498)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2493)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2478)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:388)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:350)
at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileAction.java:98)
at
org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystemEditorAction.java:98)
at
org.eclipse.ui.views.navigator.OpenActionGroup.runDefaultAction(OpenActionGroup.java:125)
at
org.eclipse.ui.views.navigator.MainActionGroup.runDefaultAction(MainActionGroup.java:328)
at
org.eclipse.ui.views.navigator.ResourceNavigator.handleOpen(ResourceNavigator.java:679)
at
org.eclipse.ui.views.navigator.ResourceNavigator$6.open(ResourceNavigator.java:434)
at
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:817)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:843)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
at
org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:815)
at
org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1069)
at
org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1168)
at
org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:249)
at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:243)
at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:283)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
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.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: java.lang.IndexOutOfBoundsException: targetIndex=1, size=1
at org.eclipse.emf.common.util.BasicEList.move(BasicEList.java:997)
at
org.eclipse.emf.common.notify.impl.NotifyingListImpl.doMove(NotifyingListImpl.java:1308)
at
org.eclipse.emf.common.notify.impl.NotifyingListImpl.move(NotifyingListImpl.java:1281)
at
org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.setValue(XMLHelperImpl.java:1076)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.setFeatureValue(XMLHandler.java:2377)
... 78 more