intuit / QuickBooks-V3-Java-SDK

Java SDK for QuickBooks REST API v3 services
Apache License 2.0
61 stars 142 forks source link

Class loading error in DevKit #175

Open sukolenvo opened 2 years ago

sukolenvo commented 2 years ago

Error stacktrace:

Caused by: java.lang.IllegalStateException: Unable to load cache item
    at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79)
    at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
    at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:119)
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:294)
    at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174)
    at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153)
    at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73)
    at com.intuit.ipp.query.GenerateQuery.createQueryEntity(GenerateQuery.java:75)
    at i.w.c.q.a.C.f(C.java:38)
    at i.w.c.q.c.C.is(C.java:23)
    at i.w.c.q.Q.is(Q.java:81)
    at i.w.c.m.W.is(W.java:23)
    at i.w.c.h.W.is(W.java:20)
    at i.w.c.h.H.c(H.java:66)
    at i.w.c.h.H.r(H.java:45)
    ... 2 more
Caused by: java.lang.IncompatibleClassChangeError: Superclass org/objectweb/asm/ClassVisitor can't be an interface
    at java.base/java.lang.ClassLoader.defineClassImpl(Native Method)
    at java.base/java.lang.ClassLoader.defineClassInternal(ClassLoader.java:481)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:442)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:1110)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:898)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:806)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:764)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:1083)
    at net.sf.cglib.core.DefaultGeneratorStrategy.getClassVisitor(DefaultGeneratorStrategy.java:30)
    at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
    at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:332)
    at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:96)
    at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:94)
    at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
    ... 17 more

Dependency tree (you can notice that both org.ow2.asm:asm:7.1 and asm:asm:3.3.1 included):

+--- com.intuit.quickbooks-online:ipp-v3-java-devkit:6.0.7
|    +--- com.intuit.quickbooks-online:ipp-v3-java-data:6.0.7 (*)
|    +--- cglib:cglib:3.2.12
|    |    \--- org.ow2.asm:asm:7.1
|    +--- asm:asm-commons:3.3.1
|    |    \--- asm:asm-tree:3.3.1
|    |         \--- asm:asm:3.3.1

They are two version of same artifact (link): image

Following dependency seems to cause the error (link) and can be safely removed (running fine after excluding it from dependencies for us):

    <dependency> 
      <groupId>asm</groupId>  
      <artifactId>asm-commons</artifactId>  
      <version>3.3.1</version> 
    </dependency>  
chahatjl commented 1 year ago

Updated the asm-commons from 3.3.1 to 9.3 version and byte-buddy dependency file