| Summary: | ClassCastException inside debug code prevents tests from being run in debug mode | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Equinox | Reporter: | Olivier Thomann <Olivier_Thomann> | ||||
| Component: | Framework | Assignee: | Thomas Watson <tjwatson> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | major | ||||||
| Priority: | P3 | CC: | tjwatson | ||||
| Version: | 3.6 | ||||||
| Target Milestone: | 3.7 M1 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| Whiteboard: | |||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 344855 | ||||||
| Attachments: |
|
||||||
This is a regression introduced by bug 269185. The patch looks good. I released it to HEAD. . |
Created attachment 174435 [details] Proposed fix 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.