[arquillian-issues] [JBoss JIRA] Updated: (ARQ-402) Arquillian no longer works on Java 1.5

David Allen (JIRA) jira-events at lists.jboss.org
Fri Mar 25 05:30:45 EDT 2011


     [ https://issues.jboss.org/browse/ARQ-402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Allen updated ARQ-402:
----------------------------

    Summary: Arquillian no longer works on Java 1.5  (was: Arquillian no long works on Java 1.5)


It appears that the only problem here is the dependency to shrinkwrap-descriptors-api version 0.1.4.  It was built with and targets Java 1.6 only.  Since this project is not part of ShrinkWrap, it apparently did not go through the same build process to ensure it was JDK 1.5 compatible.

Where does this independent project live?  It is not part of ShrinkWrap, nor Arquillian.

> Arquillian no longer works on Java 1.5
> --------------------------------------
>
>                 Key: ARQ-402
>                 URL: https://issues.jboss.org/browse/ARQ-402
>             Project: Arquillian
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Base Implementation
>    Affects Versions: 1.0.0.Alpha5
>            Reporter: David Allen
>
> When using Arquillian 1.0.0.Alpha5 or SNAPSHOT versions on a Sun JDK version 1.5, the following error occurs:
> java.lang.UnsupportedClassVersionError: Bad version number in .class file
> (stack trace below)
> The error occurs on the first line in this getType() method:
>    
> InjectionPointImpl.class
> ------------------------
>    @Override
>    public Type getType()
>    {
>       ParameterizedType type = (ParameterizedType) field.getGenericType();
>       if(type.getActualTypeArguments()[0] instanceof ParameterizedType)
>       {
>          ParameterizedType first = (ParameterizedType)type.getActualTypeArguments()[0];
>          return (Class<?>)first.getRawType();
>       }
>       else
>       {
>          return (Class<?>)type.getActualTypeArguments()[0];
>       }
>    }
> It only occurs when the instance producer is for an ArquillianDescriptor which extends a newly used
> Descriptor from ShrinkWrap.  It appears that ShrinkWrap was compiled only for Java 1.6.
> The field being injected is this one:
>    private org.jboss.arquillian.spi.core.InstanceProducer org.jboss.arquillian.impl.bootstrap.ConfigurationRegistrar.descriptorInst
> The templated type is this descriptor:
>    org.jboss.arquillian.impl.configuration.api.ArquillianDescriptor extends org.jboss.shrinkwrap.descriptor.api.Descriptor
> ...and these are the header infos from the corresponding classes:
> // Compiled from Descriptor.java (version 1.6 : 50.0, no super bit)
> public abstract interface org.jboss.shrinkwrap.descriptor.api.Descriptor {
> // Compiled from ArquillianDescriptor.java (version 1.5 : 49.0, no super bit)
> public abstract interface org.jboss.arquillian.impl.configuration.api.ArquillianDescriptor extends org.jboss.shrinkwrap.descriptor.api.Descriptor {
> The ArquillianDescriptor was probably compiled with Java 1.6, but set to target version 1.5
> The full stack trace is as follows:
> -----------------------------------
> java.lang.UnsupportedClassVersionError: Bad version number in .class file
> 	at java.lang.ClassLoader.defineClass1(Native Method)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> 	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> 	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> 	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> 	at java.lang.ClassLoader.defineClass1(Native Method)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> 	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> 	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> 	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:242)
> 	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:95)
> 	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:107)
> 	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31)
> 	at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:50)
> 	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:120)
> 	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:31)
> 	at sun.reflect.generics.repository.FieldRepository.getGenericType(FieldRepository.java:67)
> 	at java.lang.reflect.Field.getGenericType(Field.java:222)
> 	at org.jboss.arquillian.impl.core.InjectionPointImpl.getType(InjectionPointImpl.java:66)
> 	at org.jboss.arquillian.impl.core.ManagerImpl.injectInstances(ManagerImpl.java:443)
> 	at org.jboss.arquillian.impl.core.ManagerImpl.inject(ManagerImpl.java:432)
> 	at org.jboss.arquillian.impl.core.ManagerImpl.createExtensions(ManagerImpl.java:330)
> 	at org.jboss.arquillian.impl.core.ManagerImpl.<init>(ManagerImpl.java:82)
> 	at org.jboss.arquillian.impl.core.ManagerBuilder.create(ManagerBuilder.java:74)
> 	at org.jboss.arquillian.impl.DeployableTestBuilder.build(DeployableTestBuilder.java:97)
> 	at org.jboss.arquillian.impl.DeployableTestBuilder.build(DeployableTestBuilder.java:67)
> 	at org.jboss.arquillian.junit.Arquillian.<init>(Arquillian.java:82)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
> 	at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)
> 	at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
> 	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
> 	at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
> 	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
> 	at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:32)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:41)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:31)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the arquillian-issues mailing list