Summary: | ClassCastException in PartServiceImpl.switchPerspective | ||
---|---|---|---|
Product: | [Eclipse Project] Platform | Reporter: | EPP Error Reports <error-reports-inbox> |
Component: | UI | Assignee: | Platform-UI-Inbox <Platform-UI-Inbox> |
Status: | NEW --- | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | CC: | kalyan_prasad, loskutov, rolf.theunissen |
Version: | 4.7 | ||
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All | ||
See Also: |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=388617 https://bugs.eclipse.org/bugs/show_bug.cgi?id=475154 https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/177355 https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/177374 |
||
Whiteboard: |
Description
EPP Error Reports
2017-06-14 10:07:38 EDT
Similar stack from 4.15: !MESSAGE Unhandled event loop exception !STACK 0 java.lang.ClassCastException: class org.eclipse.e4.ui.model.application.ui.advanced.impl.PlaceholderImpl cannot be cast to class org.eclipse.e4.ui.model.application.ui.basic.MPart (org.eclipse.e4.ui.model.application.ui.advanced.impl.PlaceholderImpl and org.eclipse.e4.ui.model.application.ui.basic.MPart are in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @22346157) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.switchPerspective(PartServiceImpl.java:655) at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:102) at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.lambda$0(LazyStackRenderer.java:78) at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133) at org.eclipse.swt.widgets.Display.syncExec(Display.java:5799) at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:219) at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38) at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:132) at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75) at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44) at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55) at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63) at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424) at org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl.setSelectedElement(PerspectiveStackImpl.java:152) at org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl.setSelectedElement(PerspectiveStackImpl.java:1) at org.eclipse.ui.internal.WorkbenchPage.busySetPerspective(WorkbenchPage.java:4000) at org.eclipse.ui.internal.WorkbenchPage.lambda$10(WorkbenchPage.java:3972) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:3972) at org.eclipse.ui.internal.Workbench.activate(Workbench.java:2915) at org.eclipse.ui.internal.Workbench.busyShowPerspective(Workbench.java:2956) at org.eclipse.ui.internal.Workbench.lambda$19(Workbench.java:2931) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74) at org.eclipse.ui.internal.Workbench.showPerspective(Workbench.java:2929) at org.eclipse.ui.internal.Workbench.showPerspective(Workbench.java:2904) at org.eclipse.debug.internal.ui.launchConfigurations.PerspectiveManager.switchToPerspective(PerspectiveManager.java:386) at org.eclipse.debug.internal.ui.launchConfigurations.PerspectiveManager$2.runInUIThread(PerspectiveManager.java:464) at org.eclipse.debug.internal.ui.launchConfigurations.PerspectiveManager$MyUIJob.lambda$0(PerspectiveManager.java:232) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4930) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4451) Rolf, any idea what could cause this one? I'm not that experienced with e4, especially MPlaceholder and it's "special" meaning there. This seem to be a regression from bug 388617. (In reply to Andrey Loskutov from comment #2) > Rolf, any idea what could cause this one? I'm not that experienced with e4, > especially MPlaceholder and it's "special" meaning there. > > This seem to be a regression from bug 388617. MPlaceholder is an element that references to a shared element, that is in practice a shared MPart or MArea. All views in the Eclipse IDE are inserted with MPlaceholders. In this case, it is incorrectly assumed that all elements in a stack are MParts. It should expect a mixture of MParts and MPlaceholders. Instead of the direct cast, there should be a check for MPlaceholder, and in that case its 'getRef' should be used as MPart to activate. New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/177355 New Gerrit change created: https://git.eclipse.org/r/c/platform/eclipse.platform.ui/+/177374 Moving out of 4.20, please re-target as required. Moving out of 4.21, please re-target as required. Moving out of 4.22, please re-target as required. |