Community
Participate
Working Groups
The code inside org.eclipse.update.internal.configurator.SiteEntry.addFeatureEntry(..) calls Version.compareTo(..) with a Version instance. When compiled against a version of osgi that is 3.6 and lower, this call resolves to Version.compareTo(Object). When compiled against a version of osgi that is using generics, this call resolves to Version.compareTo(Version), because the Version class implements Comparable<Version>. Between 3.8 builds and 3.6.2 builds, the version of this bundle has not changed. It is 3.3.100.v20100512. This means that we have two bundles which have exactly the same version (and same qualifier) that don't have the same contents. I am sure about the type org.eclipse.update.internal.configurator.SiteEntry. They might be others with the same issue. I would recommend to bump the version of the org.eclipse.update.configurator bundle so that the version is not identical anymore. When I start a product based on a 3.6.2+ target platform, running on a 3.8 build, I end up with such an error on startup: !SESSION 2012-03-16 11:14:48.998 ----------------------------------------------- eclipse.buildId=unknown java.fullversion=JRE 1.6.0 IBM J9 2.4 Windows 7 amd64-64 jvmwa6460sr10-20111207_96808 (JIT enabled, AOT enabled) J9VM - 20111207_096808 JIT - r9_20111107_21307ifx1 GC - 20110519_AA BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=fr_CA Framework arguments: -product org.eclipse.sdk.ide Command-line arguments: -product org.eclipse.sdk.ide -data C:\jazz\workspaces\head/../tests/runtime-Jazz(Local) -dev file:C:/jazz/workspaces/head/.metadata/.plugins/org.eclipse.pde.core/Jazz (Local)/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog !ENTRY org.eclipse.jface 2 0 2012-03-16 11:14:56.989 !MESSAGE Keybinding conflicts occurred. They may interfere with normal accelerator operation. !SUBENTRY 1 org.eclipse.jface 2 0 2012-03-16 11:14:56.990 !MESSAGE A conflict occurred for ALT+CTRL+W: Binding(ALT+CTRL+W, ParameterizedCommand(Command(com.ibm.magnolia.workitems.views.navigateToWorkItem,Open Work Item, Opens the work item selection dialog, Category(com.ibm.magnolia.workitems,Work Item,Work Item Actions,true), , ,,true),null), org.eclipse.ui.defaultAcceleratorConfiguration, org.eclipse.ui.contexts.window,,,system) Binding(ALT+CTRL+W, ParameterizedCommand(Command(org.eclipse.team.svn.ui.command.EditPropertiesCommand,Show Properties, , Category(org.eclipse.team.svn.ui.command.category,SVN,null,true), , ,,true),null), org.eclipse.ui.defaultAcceleratorConfiguration, org.eclipse.ui.contexts.window,,,system) !ENTRY org.eclipse.osgi 4 0 2012-03-16 11:14:57.286 !MESSAGE An error occurred while automatically activating bundle org.eclipse.update.configurator (869). !STACK 0 org.osgi.framework.BundleException: Exception in org.eclipse.update.internal.configurator.ConfigurationActivator.start() of bundle org.eclipse.update.configurator. at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417) at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:265) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:106) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:453) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393) at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:466) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:626) at org.eclipse.update.internal.core.UpdateCore.getInstallLogFile(UpdateCore.java:180) at org.eclipse.update.internal.core.UpdateCore.start(UpdateCore.java:248) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) at java.security.AccessController.doPrivileged(AccessController.java:251) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417) at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:265) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:106) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:453) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393) at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:466) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:626) at java.lang.J9VMInternals.verifyImpl(Native Method) at java.lang.J9VMInternals.verify(J9VMInternals.java:72) at java.lang.J9VMInternals.initialize(J9VMInternals.java:134) at java.lang.J9VMInternals.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1345) at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184) at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:904) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:259) at org.eclipse.ui.internal.EarlyStartupRunnable.getExecutableExtension(EarlyStartupRunnable.java:117) at org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:66) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.Workbench$59.run(Workbench.java:2409) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: java.lang.NoSuchMethodError: org/osgi/framework/Version.compareTo(Lorg/osgi/framework/Version;)I at org.eclipse.update.internal.configurator.SiteEntry.addFeatureEntry(SiteEntry.java:610) at org.eclipse.update.internal.configurator.SiteEntry.detectFeatures(SiteEntry.java:307) at org.eclipse.update.internal.configurator.SiteEntry.getDetectedFeatures(SiteEntry.java:472) at org.eclipse.update.internal.configurator.SiteEntry.getFeatures(SiteEntry.java:131) at org.eclipse.update.internal.configurator.SiteEntry.computeFeaturesChangeStamp(SiteEntry.java:505) at org.eclipse.update.internal.configurator.SiteEntry.computeChangeStamp(SiteEntry.java:494) at org.eclipse.update.internal.configurator.SiteEntry.getChangeStamp(SiteEntry.java:223) at org.eclipse.update.internal.configurator.PlatformConfiguration.reconcile(PlatformConfiguration.java:1248) at org.eclipse.update.internal.configurator.PlatformConfiguration.<init>(PlatformConfiguration.java:134) at org.eclipse.update.internal.configurator.PlatformConfiguration.startup(PlatformConfiguration.java:707) at org.eclipse.update.internal.configurator.ConfigurationActivator.getPlatformConfiguration(ConfigurationActivator.java:404) at org.eclipse.update.internal.configurator.ConfigurationActivator.initialize(ConfigurationActivator.java:136) at org.eclipse.update.internal.configurator.ConfigurationActivator.start(ConfigurationActivator.java:69) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) at java.security.AccessController.doPrivileged(AccessController.java:251) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) ... 50 more This should be fixed so that the update.configurator bundle from the target is used instead of the one from the running eclipse.
John has update commit rights.
I have incremented the version of org.eclipse.update.core.configurator to 3.3.200.