Context menu contributors: Fix class cast exception
Steps to reproduce
- Open “AF3 Tour” model or any model with at least one requirement
- Right click onto any requirement e.g. 1.2 - Safety requirement: accidents prevention (to add an aspect)
- Observe below exception
java.lang.ClassCastException: class org.fortiss.af3.mira.model.impl.RequirementConnectorImpl cannot be cast to class org.fortiss.tooling.base.model.layout.ILayoutedModelElement (org.fortiss.af3.mira.model.impl.RequirementConnectorImpl is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @45eab322; org.fortiss.tooling.base.model.layout.ILayoutedModelElement is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @34acbc60)
at org.fortiss.tooling.base.ui.layout.auto.AutoLayoutMenu.hasConnectedConnectorWithAngle(AutoLayoutMenu.java:86)
at org.fortiss.tooling.base.ui.layout.auto.AutoLayoutMenu.getContributedItems(AutoLayoutMenu.java:119)
at org.fortiss.tooling.kernel.ui.internal.ContextMenuService.singleSelectionElementContributions(ContextMenuService.java:198)
at org.fortiss.tooling.kernel.ui.internal.ContextMenuService.addContributions(ContextMenuService.java:180)
at org.fortiss.tooling.kernel.ui.internal.ContextMenuService$MenuCreator.menuAboutToShow(ContextMenuService.java:159)
at org.eclipse.jface.action.MenuManager.fireAboutToShow(MenuManager.java:341)
at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:471)
at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:466)
at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:498)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:259)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4131)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1056)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1080)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:5132)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4788)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:348)
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1501)
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2138)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4770)
at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(Native Method)
at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:253)
at org.eclipse.swt.widgets.Display.runPopups(Display.java:3985)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3541)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:635)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.fortiss.af3.rcapplication.AF3Application.start(AF3Application.java:49)
at org.eclipse.equinox.internal.apEclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
at org.eclipse.equinox.launcher.Main.main(Main.java:1441)
(from redmine: issue id 3813, created on 2019-09-05, closed on 2019-09-26)