[
https://issues.jboss.org/browse/WELD-1074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12673392#comment-12673392
]
Ales Justin commented on WELD-1074:
-----------------------------------
>From me: I doubt the classpath order has anything to do with this ...
*
http://stackoverflow.com/questions/1980452/what-causes-java-lang-incompatibleclasschangeerror
>From Stuart: Like the first answer says, it means that you have code that was
>compiled against a different version of the class on the Class Path.
I'll have a look, to sort out this versions.
But imo, this is mostly your problem not a bug. :-)
> Using `new Weld()` fails with java.lang.IncompatibleClassChangeError when
> Guava on classpath?
> ---------------------------------------------------------------------------------------------
>
> Key: WELD-1074
> URL: https://issues.jboss.org/browse/WELD-1074
> Project: Weld
> Issue Type: Bug
> Components: Bootstrap and Metamodel API
> Reporter: Aled Sage
>
> I am running Weld in a vanilla JVM using `new Weld()` (having been blocked in
> AS 7 by https://community.jboss.org/thread/154405).
> I am getting the error shown below. I presume Weld is doing some special
> classloading that causes it to pick up Guava from somewhere other than the
> head of the classpath? My question/bug is:
> * is the classloading behaviour documented; are there things that a user must
> not do?
> * is this error caused by me having Guava ahead of the weld jar on the
> classpath, and if so can such errors be avoided in weld? Or is it just always
> necessary to avoid having Weld dependencies ahead of
> ---
> I have built Weld myself from master (1.1.6-SNAPSHOT, git commit 282f830) so
> have the version with guava dependency 11.0.2.
> (Thanks Ales for fixing that one!)
> ---
> (note I also put in an extra catch block into BeanDeployer so that it would
> tell me which class it was trying to load when it got this error).
> org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class
> com.google.common.collect.StandardTable$ColumnMap
> at
> org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:167)
> at
> org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:88)
> at
> org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:118)
> at
> org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:171)
> at
> org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:336)
> at org.jboss.weld.environment.se.Weld.initialize(Weld.java:86)
> at
> net.ezbrokerage.launcher.EzBrokerageLauncher.<init>(EzBrokerageLauncher.java:31)
> at
> net.ezbrokerage.launcher.MontereyVenueLauncher.<init>(MontereyVenueLauncher.java:45)
> at
> net.ezbrokerage.launcher.MontereyVenueLauncher.main(MontereyVenueLauncher.java:86)
> Caused by: java.lang.reflect.GenericSignatureFormatError
> at
> sun.reflect.generics.parser.SignatureParser.error(SignatureParser.java:103)
> at
> sun.reflect.generics.parser.SignatureParser.parseSimpleClassTypeSignature(SignatureParser.java:262)
> at
> sun.reflect.generics.parser.SignatureParser.parseClassTypeSignatureSuffix(SignatureParser.java:270)
> at
> sun.reflect.generics.parser.SignatureParser.parseClassTypeSignature(SignatureParser.java:244)
> at
> sun.reflect.generics.parser.SignatureParser.parseFieldTypeSignature(SignatureParser.java:228)
> at
> sun.reflect.generics.parser.SignatureParser.parseTypeSignature(SignatureParser.java:359)
> at
> sun.reflect.generics.parser.SignatureParser.parseTypeSig(SignatureParser.java:157)
> at
> sun.reflect.generics.repository.FieldRepository.parse(FieldRepository.java:34)
> at
> sun.reflect.generics.repository.FieldRepository.parse(FieldRepository.java:24)
> at
> sun.reflect.generics.repository.AbstractRepository.<init>(AbstractRepository.java:56)
> at
> sun.reflect.generics.repository.FieldRepository.<init>(FieldRepository.java:30)
> at
> sun.reflect.generics.repository.FieldRepository.make(FieldRepository.java:48)
> at java.lang.reflect.Field.getGenericInfo(Field.java:85)
> at java.lang.reflect.Field.getGenericType(Field.java:223)
> at
> org.jboss.weld.introspector.jlr.WeldFieldImpl.of(WeldFieldImpl.java:52)
> at
> org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:155)
> at
> org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:119)
> at
> org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:59)
> at
> org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:50)
> at
> com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)
> at
> com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184)
> at
> com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153)
> at
> com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69)
> at
> com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
> at
> org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:163)
> ... 8 more
> Exception in thread "main" java.lang.IncompatibleClassChangeError:
> Implementing class
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at
> org.jboss.weld.environment.se.discovery.url.WeldSEResourceLoader.classForName(WeldSEResourceLoader.java:40)
> at
> org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:78)
> at
> org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:118)
> at
> org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:171)
> at
> org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:336)
> at org.jboss.weld.environment.se.Weld.initialize(Weld.java:86)
> at
> net.ezbrokerage.launcher.EzBrokerageLauncher.<init>(EzBrokerageLauncher.java:31)
> at
> net.ezbrokerage.launcher.MontereyVenueLauncher.<init>(MontereyVenueLauncher.java:45)
> at
> net.ezbrokerage.launcher.MontereyVenueLauncher.main(MontereyVenueLauncher.java:86)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues