Unsupported Class Version Error
I am trying to compile a plug-in that works properly when I run the RTC virtual machines but whenever I package up the plug-in and install it into RTC i get the following stack trace:
I am assuming it has something to do with the version of java that I am compiling with. I tried changing the compiler compliance level to 1.5 but this didn't seem to help. Any ideas on how I can fix this problem? Are there special things I need in the manifest?
java.lang.UnsupportedClassVersionError: (edu/ncsu/csc/wolfpoker/jazz/common/model/JazzPackage) bad major version at offset=6
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:266)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:165)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:554)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:524)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:455)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:443)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:423)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:370)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:446)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)
at java.lang.ClassLoader.loadClass(ClassLoader.java:605)
at org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:315)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:227)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1274)
at org.eclipse.emf.ecore.plugin.RegistryReader$EPackageDescriptor.getEPackage(RegistryReader.java:253)
at org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage(EPackageRegistryImpl.java:133)
at com.ibm.team.repository.common.internal.util.ComponentRegistry.getItemTypes(ComponentRegistry.java:516)
at com.ibm.team.repository.common.internal.util.ComponentRegistry.getAllItemTypes(ComponentRegistry.java:165)
at com.ibm.team.workitem.client.internal.AuditableClient$InternalListener.install(AuditableClient.java:82)
at com.ibm.team.workitem.client.internal.AuditableClient.<init>(AuditableClient.java:120)
at com.ibm.team.workitem.client.internal.AuditableClientLibraryFactory.createClientLibrary(AuditableClientLibraryFactory.java:17)
at com.ibm.team.repository.client.internal.ClientLibraryFactoryRegistry.getClientLibrary(ClientLibraryFactoryRegistry.java:89)
at com.ibm.team.repository.client.internal.TeamRepository.getClientLibrary(TeamRepository.java:485)
at com.ibm.team.workitem.client.internal.AuditableCommonLibraryFactory.createClientLibrary(AuditableCommonLibraryFactory.java:19)
at com.ibm.team.repository.client.internal.ClientLibraryFactoryRegistry.getClientLibrary(ClientLibraryFactoryRegistry.java:89)
at com.ibm.team.repository.client.internal.TeamRepository.getClientLibrary(TeamRepository.java:485)
at com.ibm.team.workitem.client.internal.ClientServiceContext.getService(ClientServiceContext.java:30)
at com.ibm.team.workitem.common.internal.WorkItemCommon.<init>(WorkItemCommon.java:146)
at com.ibm.team.workitem.client.internal.WorkItemClient.<init>(WorkItemClient.java:362)
at com.ibm.team.workitem.client.internal.WorkItemClientLibraryFactory.createClientLibrary(WorkItemClientLibraryFactory.java:17)
at com.ibm.team.repository.client.internal.ClientLibraryFactoryRegistry.getClientLibrary(ClientLibraryFactoryRegistry.java:89)
at com.ibm.team.repository.client.internal.TeamRepository.getClientLibrary(TeamRepository.java:485)
at com.ibm.team.workitem.rcp.ui.internal.explorer.HistoryDomain$HistoryContentProvider.<init>(HistoryDomain.java:163)
at com.ibm.team.workitem.rcp.ui.internal.explorer.HistoryDomain.getContentProvider(HistoryDomain.java:519)
at com.ibm.team.process.internal.rcp.ui.DelegatingTreePathContentProvider.<init>(DelegatingTreePathContentProvider.java:131)
at com.ibm.team.process.internal.rcp.ui.DomainNavigator.createPartControl(DomainNavigator.java:177)
at com.ibm.team.process.internal.rcp.ui.TeamArtifactsNavigator.createPartControl(TeamArtifactsNavigator.java:75)
at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:371)
at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:230)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
at org.eclipse.ui.internal.WorkbenchPage$ActivationList.setActive(WorkbenchPage.java:4169)
at org.eclipse.ui.internal.WorkbenchPage$17.runWithException(WorkbenchPage.java:3234)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3817)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3442)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
at org.eclipse.ui.internal.Workbench$27.runWithException(Workbench.java:1363)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3817)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3442)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2295)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
I am assuming it has something to do with the version of java that I am compiling with. I tried changing the compiler compliance level to 1.5 but this didn't seem to help. Any ideas on how I can fix this problem? Are there special things I need in the manifest?
3 answers
Which JRE are you building with? And how do you install it into RTC?
I tried building with 1.5 update 22 and 1.6 update 22 (with a 1.5 compliance setting). Neither has done any good. I also ran javap -versbose JazzPackage to make sure the major version was 49 (for jre5). I'm installing it through the software package manager and just pointing it to the update site created by eclipse.
Well I fixed it but maybe you can explain to me why it acts this way. I finally went into the jazz plug-ins folder and pulled out that class file and ran a javap on it. The version number was 50, so obviously the class wasn't getting updated even when I uninstalled the plugin and reinstalled it. I finally had to manually replace the plug-ins in the jazz plugin folder and then reinstall the plugin. If I just deleted the plug-ins from the plug-in folder it threw an error when I tried to reinstall. It was very strange but it all works now.