Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 344855 - ClassCastException inside debug code prevents tests from being run in debug mode
Summary: ClassCastException inside debug code prevents tests from being run in debug mode
Status: RESOLVED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: Framework (show other bugs)
Version: 3.6   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 3.6.2+   Edit
Assignee: Thomas Watson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 320029
Blocks:
  Show dependency tree
 
Reported: 2011-05-05 11:46 EDT by Thomas Watson CLA
Modified: 2011-05-05 11:58 EDT (History)
2 users (show)

See Also:


Attachments
patch (1.25 KB, patch)
2011-05-05 11:54 EDT, Thomas Watson CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Watson CLA 2011-05-05 11:46:44 EDT
Track backporting this fix to 3.6.2+

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

Using code from HEAD,

I tried to run the Eclipse tests in debug mode using a .option file that sets all debug option to true.
I ended up with:
java.lang.ClassCastException: org.eclipse.osgi.internal.module.ResolverBundle cannot be cast to [Ljava.lang.Object;
	at org.eclipse.osgi.internal.module.MappedList.getAllValues(MappedList.java:78)
	at org.eclipse.osgi.internal.module.ResolverImpl.printWirings(ResolverImpl.java:1747)
	at org.eclipse.osgi.internal.module.ResolverImpl.resolveBundles(ResolverImpl.java:516)
	at org.eclipse.osgi.internal.module.ResolverImpl.resolve(ResolverImpl.java:393)
	at org.eclipse.osgi.internal.resolver.StateImpl.resolve(StateImpl.java:458)
	at org.eclipse.osgi.internal.resolver.StateImpl.resolve(StateImpl.java:523)
	at org.eclipse.osgi.framework.internal.core.PackageAdminImpl.doResolveBundles(PackageAdminImpl.java:238)
	at org.eclipse.osgi.framework.internal.core.PackageAdminImpl.resolveBundles(PackageAdminImpl.java:185)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:318)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:276)
	at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.startBundles(ConfigApplier.java:307)
	at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.install(ConfigApplier.java:108)
	at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:129)
	at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:143)
	at org.eclipse.equinox.internal.simpleconfigurator.Activator.start(Activator.java:48)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:784)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:775)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:756)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1064)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)

Looking at the code it looks like iter.next() should be replaced with "value".
I'll provide a patch for this.

If the patch is ok, it would be nice to get it released for next I-build as I would like to be able to collect code coverage data in debug mode.
Comment 1 Thomas Watson CLA 2011-05-05 11:54:16 EDT
Created attachment 194846 [details]
patch

Backport to 3.6.2+
Comment 2 Thomas Watson CLA 2011-05-05 11:58:52 EDT
Patch released.