Community
Participate
Working Groups
I get a ClassCastException at session reopening, after odesign change or having 2 representation descriptions with same id : java.lang.ClassCastException: org.eclipse.sirius.diagram.business.internal.metamodel.description.spec.DiagramDescriptionSpec cannot be cast to org.eclipse.sirius.table.metamodel.table.description.TableDescription at org.eclipse.sirius.table.metamodel.table.impl.DTableImpl.getDescription(DTableImpl.java:218) at org.eclipse.sirius.table.metamodel.table.impl.DTableImpl.eGet(DTableImpl.java:329) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1011) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1003) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:998) at org.eclipse.sirius.ecore.extender.tool.internal.ReferencesResolver.resolveCrossReferences(ReferencesResolver.java:100) at org.eclipse.sirius.ecore.extender.tool.internal.ReferencesResolver.doResolveAll(ReferencesResolver.java:93) at org.eclipse.sirius.ecore.extender.tool.internal.ReferencesResolver.resolve(ReferencesResolver.java:74) at org.eclipse.sirius.ecore.extender.tool.api.ModelUtils.resolveAll(ModelUtils.java:453) at org.eclipse.sirius.business.internal.session.danalysis.SessionResourcesTracker.forceLoadingOfEveryLinkedResource(SessionResourcesTracker.java:173) at org.eclipse.sirius.business.internal.session.danalysis.SessionResourcesTracker.initialize(SessionResourcesTracker.java:95) at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.open(DAnalysisSessionImpl.java:1136) at org.eclipse.sirius.ui.tools.internal.views.common.modelingproject.OpenRepresentationsFileJob.performOpenSession(OpenRepresentationsFileJob.java:311) at org.eclipse.sirius.ui.tools.internal.views.common.modelingproject.OpenRepresentationsFileJob.runInWorkspace(OpenRepresentationsFileJob.java:208) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:39) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Scenario to reproduce: 1. Create a simple project 2. Add My.odesign VSM with a Viewpoint on .ecore file 3. Add My.ecore, My.aird and select the Viewpoint of My.odesign 4. In My.odesign add a DiagramDescription with id="Metamodel", reference ecore metametamodel from Metamodels tab and set ecore.EPackage as domainClass 5. Create a Diagram from this DiagramDescription 6. In My.odesign add a TableDescription with id="Metamodel", reference ecore metametamodel from Metamodels tab and set ecore.EPackage as domainClass 7. Create a Table from this TableDescription 8. Save, close and try to reopen the session => KO we get the previous ClassCastException Odesign validation detects that there is a conflict in id of RepresentationDescriptions but should not crash like that at session opening. In addition the validation message about id collision is not very user-friendly : The feature 'ownedRepresentations' has key [name='Metamodel'] for 'Metamodel' which collides with that of 'Metamodel' "ownedRepresentations" is a internal Sirius reference, the message talks about key while in odesign editor it is about id, and the error marker is displayed on Viewpoint and not on RepresentationDescription in fault. The message is not explicit about which RepresentationDescriptions are in collision which don't help when we have a big odesign. At first Sirius specifier experience, we can encounter easily this kind of exception even with a valid odesign : 1. Create a simple project 2. Add My.odesign VSM with a Viewpoint on .ecore file 3. Add My.ecore, My.aird and select the Viewpoint of My.odesign 4. In My.odesign add a DiagramDescription with id="Metamodel", reference ecore metametamodel from Metamodels tab and set ecore.EPackage as domainClass 5. Create a Diagram from this DiagramDescription 6. In My.odesign, delete previous DiagramDescription, add a TableDescription with id="Metamodel", reference ecore metametamodel from Metamodels tab and set ecore.EPackage as domainClass 7. Save the odesign => KO we get the following exceptions : !ENTRY org.eclipse.ui.navigator 4 0 2016-03-14 17:44:42.315 !MESSAGE An exception occurred invoking extension: org.eclipse.sirius.ui.resource.content.session for object org.eclipse.jface.viewers.TreePath@a955713d !STACK 0 java.lang.ClassCastException: org.eclipse.sirius.table.business.internal.metamodel.description.spec.EditionTableDescriptionSpec cannot be cast to org.eclipse.sirius.diagram.description.DiagramDescription at org.eclipse.sirius.diagram.impl.DDiagramImpl.getDescription(DDiagramImpl.java:316) at org.eclipse.sirius.diagram.business.internal.dialect.DiagramDialectServices.getDescription(DiagramDialectServices.java:306) at org.eclipse.sirius.business.internal.dialect.DialectManagerImpl.getDescription(DialectManagerImpl.java:387) at org.eclipse.sirius.ui.tools.internal.views.common.SessionWrapperContentProvider$InViewpointPredicate.apply(SessionWrapperContentProvider.java:342) at org.eclipse.sirius.ui.tools.internal.views.common.SessionWrapperContentProvider$InViewpointPredicate.apply(SessionWrapperContentProvider.java:1) at com.google.common.collect.Iterators$7.computeNext(Iterators.java:647) at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) at com.google.common.collect.Iterators.addAll(Iterators.java:356) at com.google.common.collect.Lists.newArrayList(Lists.java:146) at com.google.common.collect.Lists.newArrayList(Lists.java:128) at org.eclipse.sirius.ui.tools.internal.views.common.SessionWrapperContentProvider.getRepresentationsAssociatedToEObject(SessionWrapperContentProvider.java:198) at org.eclipse.sirius.ui.tools.internal.views.common.SessionWrapperContentProvider.doGetChildren(SessionWrapperContentProvider.java:140) at org.eclipse.sirius.ui.tools.internal.views.common.SessionWrapperContentProvider.getChildren(SessionWrapperContentProvider.java:88) at org.eclipse.sirius.common.ui.tools.api.navigator.GroupingContentProvider.getChildren(GroupingContentProvider.java:165) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonContentProvider.getChildren(SiriusCommonContentProvider.java:183) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonContentProvider.hasChildren(SiriusCommonContentProvider.java:412) at org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider.hasChildren(SafeDelegateTreeContentProvider.java:112) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.callNormalHasChildren(NavigatorContentServiceContentProvider.java:444) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.access$4(NavigatorContentServiceContentProvider.java:439) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider$3.run(NavigatorContentServiceContentProvider.java:407) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.hasChildren(NavigatorContentServiceContentProvider.java:392) at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.hasChildren(NavigatorContentServiceContentProvider.java:436) at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2128) at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer.java:538) at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2166) at org.eclipse.jface.viewers.AbstractTreeViewer.optionallyPruneChildren(AbstractTreeViewer.java:2798) at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2598) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1913) at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:669) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1920) at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:669) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1920) at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:669) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1920) at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:669) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1888) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1845) at org.eclipse.ui.navigator.CommonViewer.internalRefresh(CommonViewer.java:527) at org.eclipse.jface.viewers.StructuredViewer.lambda$1(StructuredViewer.java:1542) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1458) at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:354) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1419) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1542) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:535) at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:344) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.filter.FilteredCommonTree$NotifyingCommonViewer.refresh(FilteredCommonTree.java:1216) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonContentProvider$3.run(SiriusCommonContentProvider.java:620) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonContentProvider.runUpdates(SiriusCommonContentProvider.java:782) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonContentProvider.runPendingUpdates(SiriusCommonContentProvider.java:774) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonContentProvider.access$9(SiriusCommonContentProvider.java:765) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.SiriusCommonContentProvider$4.runInUIThread(SiriusCommonContentProvider.java:751) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:97) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3807) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3446) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:169) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:384) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:481) at org.eclipse.sirius.editor.tools.internal.presentation.CustomSiriusEditor.doSave(CustomSiriusEditor.java:438) at org.eclipse.ui.internal.SaveableHelper$2.run(SaveableHelper.java:156) at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:285) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:460) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:368) at org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2181) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2177) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:293) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:271) at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:161) at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3901) at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3915) at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:54) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:295) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90) at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:54) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:264) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:491) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:286) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:507) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:558) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:378) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:324) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:86) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1550) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1338) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1363) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1375) at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:763) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3358) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:811) at org.eclipse.swt.widgets.Tree.gtk_key_press_event(Tree.java:1922) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1990) at org.eclipse.swt.widgets.Control.windowProc(Control.java:5740) at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:3663) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4730) at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:9485) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1225) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2477) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3441) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1118) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1019) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:157) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:691) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138) 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:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:670) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:609) at org.eclipse.equinox.launcher.Main.run(Main.java:1516) at org.eclipse.equinox.launcher.Main.main(Main.java:1489) !ENTRY org.eclipse.jface 4 0 2016-03-14 17:44:42.319 !MESSAGE Unhandled event loop exception during blocked modal context. !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ClassCastException: org.eclipse.sirius.table.business.internal.metamodel.description.spec.EditionTableDescriptionSpec cannot be cast to org.eclipse.sirius.diagram.description.DiagramDescription) at org.eclipse.swt.SWT.error(SWT.java:4522) at org.eclipse.swt.SWT.error(SWT.java:4437) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3807) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3446) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:169) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:384) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:481) at org.eclipse.sirius.editor.tools.internal.presentation.CustomSiriusEditor.doSave(CustomSiriusEditor.java:438) at org.eclipse.ui.internal.SaveableHelper$2.run(SaveableHelper.java:156) at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:285) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:460) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:368) at org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2181) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2177) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:293) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:271) at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:161) at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3901) at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3915) at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:54) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:295) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90) at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:54) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:264) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:491) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:286) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:507) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:558) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:378) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:324) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:86) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1550) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1338) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1363) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1375) at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:763) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3358) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:811) at org.eclipse.swt.widgets.Tree.gtk_key_press_event(Tree.java:1922) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1990) at org.eclipse.swt.widgets.Control.windowProc(Control.java:5740) at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:3663) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4730) at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:9485) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1225) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2477) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3441) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1118) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1019) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:157) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:691) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138) 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:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:670) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:609) at org.eclipse.equinox.launcher.Main.run(Main.java:1516) at org.eclipse.equinox.launcher.Main.main(Main.java:1489) Caused by: java.lang.ClassCastException: org.eclipse.sirius.table.business.internal.metamodel.description.spec.EditionTableDescriptionSpec cannot be cast to org.eclipse.sirius.diagram.description.DiagramDescription at org.eclipse.sirius.diagram.impl.DDiagramImpl.getDescription(DDiagramImpl.java:316) at org.eclipse.sirius.diagram.ui.tools.internal.palette.PaletteManagerImpl.updatePalette(PaletteManagerImpl.java:247) at org.eclipse.sirius.diagram.ui.tools.internal.palette.PaletteManagerImpl.updatePalette(PaletteManagerImpl.java:219) at org.eclipse.sirius.diagram.ui.tools.internal.palette.PaletteManagerImpl.update(PaletteManagerImpl.java:180) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorSessionListenerDelegate.reloadPalette(DDiagramEditorSessionListenerDelegate.java:214) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorSessionListenerDelegate.run(DDiagramEditorSessionListenerDelegate.java:119) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) ... 80 more
For the second scenario, a Repair of the aird don't help then we loose all representations. Technically this is due to the use of IdentifiedElement.name attribute as EKeys for element having EReference typed to subtype of IdentifiedElement. For example Viewpoint.ownedRepresentations:RepresentationDescription.