This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 374510 - Retag org.eclipse.update.configurator bundle to fix bytecode mismatch between 3.6.2+ and above
Summary: Retag org.eclipse.update.configurator bundle to fix bytecode mismatch between...
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Update (deprecated - use Eclipse>Equinox>p2) (show other bugs)
Version: 4.0   Edit
Hardware: PC Windows 7
: P3 critical (vote)
Target Milestone: 4.2 M7   Edit
Assignee: John Arthorne CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-16 11:16 EDT by Olivier Thomann CLA
Modified: 2012-04-02 09:21 EDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Olivier Thomann CLA 2012-03-16 11:16:06 EDT
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.
Comment 1 DJ Houghton CLA 2012-03-16 13:11:09 EDT
John has update commit rights.
Comment 2 John Arthorne CLA 2012-04-02 09:21:47 EDT
I have incremented the version of org.eclipse.update.core.configurator to 3.3.200.