Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 423852 - [Workbench] ClassCastException: HandlerProcessingAddon casts an MHandlerContainer to an MContext without check
Summary: [Workbench] ClassCastException: HandlerProcessingAddon casts an MHandlerConta...
Status: CLOSED DUPLICATE of bug 422971
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.3.1   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 4.3.2   Edit
Assignee: Paul Webster CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 422034
Blocks:
  Show dependency tree
 
Reported: 2013-12-11 13:17 EST by Paul Webster CLA
Modified: 2013-12-11 13:53 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Webster CLA 2013-12-11 13:17:33 EST
backport into 4.3.2

+++ This bug was initially created as a clone of Bug #422034 +++

The HandlerProcessingAddon casts an MHandlerContainer to an MContext without checking if the MHandlerContainer is of type MContext. 

As this is true for most of the classes implementing MHandlerContainer, it is not true for all. One example is MPartDescriptor. The HandlerProcessingAddon fails with an ClassCastException if one removes an MHandler from an MPartDescriptor.


For 4.3.1 the stacktrace is as follows:
java.lang.ClassCastException: org.eclipse.e4.ui.model.application.descriptor.basic.impl.PartDescriptorImpl cannot be cast to org.eclipse.e4.ui.model.application.ui.MContext
	at org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon$1.handleEvent(HandlerProcessingAddon.java:88) ~[na:na]
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:41) ~[na:na]
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) ~[na:na]
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) ~[na:na]
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4145) ~[na:na]
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3762) ~[na:na]
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113) ~[na:na]
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) ~[na:na]
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997) ~[na:na]
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138) ~[na:na]
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:162) ~[na:na]
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) ~[na:na]
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) ~[na:na]
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) ~[na:na]
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354) ~[na:na]
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181) ~[na:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_07]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_07]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_07]
	at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_07]
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636) ~[org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar:na]
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591) ~[org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar:na]
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450) ~[org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar:na]
Comment 1 Paul Webster CLA 2013-12-11 13:53:40 EST
I should check my blocks first.

PW

*** This bug has been marked as a duplicate of bug 422971 ***