FragmentClassLoader causes UnsupportedClassVersionError in most tests
---------------------------------------------------------------------
Key: QI-254
URL: http://issues.ops4j.org/browse/QI-254
Project: Qi4j
Issue Type: Bug
Components: Core Runtime
Environment: Mac OSX 10.5.8 (non-intel), JVM 1.5.0_22, qi4j
1.2-SNAPSHOT (as of 2010-06-21)
Reporter: Marc Grue
Assignee: Rickard Öberg
Fix For: 1.2
Running qi4j.runtime.AppliesToFilterTest (or most other tests) gives the
following error:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
at
org.qi4j.runtime.composite.FragmentClassLoader.findClass(FragmentClassLoader.java:80)
at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at
org.qi4j.runtime.bootstrap.AssemblyHelper.instantiationClass(AssemblyHelper.java:64)
at
org.qi4j.runtime.bootstrap.AssemblyHelper.getMixinModel(AssemblyHelper.java:39)
at
org.qi4j.runtime.composite.AbstractMixinsModel.implementMethodWithClass(AbstractMixinsModel.java:197)
at
org.qi4j.runtime.composite.AbstractMixinsModel.implementMethod(AbstractMixinsModel.java:122)
at
org.qi4j.runtime.composite.CompositeMethodsModel.implementMixinType(CompositeMethodsModel.java:134)
at
org.qi4j.runtime.composite.CompositeMethodsModel.<init>(CompositeMethodsModel.java:59)
at
org.qi4j.runtime.composite.TransientModel.newModel(TransientModel.java:65)
at
org.qi4j.runtime.bootstrap.TransientDeclarationImpl.addComposites(TransientDeclarationImpl.java:89)
at
org.qi4j.runtime.bootstrap.ModuleAssemblyImpl.assembleModule(ModuleAssemblyImpl.java:263)
at
org.qi4j.runtime.bootstrap.ApplicationModelFactoryImpl.newApplicationModel(ApplicationModelFactoryImpl.java:69)
at
org.qi4j.bootstrap.Energy4Java.newApplicationModel(Energy4Java.java:70)
at
org.qi4j.test.AbstractQi4jTest.newApplication(AbstractQi4jTest.java:100)
at org.qi4j.test.AbstractQi4jTest.setUp(AbstractQi4jTest.java:66)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
org.junit.internal.runners.MethodRoadie.runBefores(MethodRoadie.java:122)
at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:86)
at
org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
at
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
at
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
at
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
at
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
at
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
at
com.intellij.rt.junit4.Junit4ClassSuite.run(Junit4ClassSuite.java:99)
at
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
Found this explanation on the internet:
"This usually means that your application has been compiled with a newer
version of JDK than the version you try to run it with. For example,
the source code is compiled with JDK 1.4 but executed with JRE 1.3. JRE 1.3
does not understand the new format of .class files generated by
compiler from JDK 1.4 so you get the error message.
I think this should not happen unless you downgrade your JDK/JRE or
change the Source Level setting in the project's properties."
So it seems that some native (?) code is compiled in a newer version
unrecognized by JVM 1.5.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.ops4j.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev