You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
public CglibDemo$Person$$EnhancerByCGLIB$$49b2ccd2();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
0: aload_0
1: dup
2: invokespecial #200 // Method CglibDemo$Person."<init>":()V
5: invokestatic #44 // Method CGLIB$BIND_CALLBACKS:(Ljava/lang/Object;)V
8: return
9: athrow
10: new #66 // class java/lang/reflect/UndeclaredThrowableException
13: dup_x1
14: swap
15: invokespecial #69 // Method java/lang/reflect/UndeclaredThrowableException."<init>":(Ljava/lang/Throwable;)V
18: athrow
Exception table:
from to target type
0 9 9 Class java/lang/RuntimeException
0 9 9 Class java/lang/Error
0 9 10 Class java/lang/Throwable
The CglibDemo works in cglib 3.2.12, error in cglib 3.3.0:
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.proxy.Enhancer.createHelper(Enhancer.java:480)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:305)
at CglibDemo2.newInstance(CglibDemo2.java:22)
at CglibDemo2.main(CglibDemo2.java:51)
Caused by: java.lang.VerifyError: Stack map does not match the one at exception handler 9
Exception Details:
Location:
CglibDemo2$Person$$EnhancerByCGLIB$$21a4f41d.<init>()V @9: athrow
Reason:
Current frame's flags are not assignable to stack map frame's.
Current Frame:
bci: @0
flags: { flagThisUninit }
locals: { uninitializedThis }
stack: { 'java/lang/RuntimeException' }
Stackmap Frame:
bci: @9
flags: { }
locals: { }
stack: { 'java/lang/Throwable' }
Bytecode:
0x0000000: 2a59 b700 c6b8 002c b1bf bb00 425a 5fb7
0x0000010: 0045 bf
Exception Handler Table:
bci [0, 9] => handler: 9
bci [0, 9] => handler: 9
bci [0, 9] => handler: 10
Stackmap Table:
full_frame(@9,{},{Object[#64]})
same_locals_1_stack_item_frame(@10,Object[#64])
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:467)
at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:339)
at net.sf.cglib.proxy.Enhancer.generate(Enhancer.java:492)
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.util.concurrent.FutureTask.run(FutureTask.java:266)
at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
... 7 more
Exception in thread "main" java.lang.Error: Unable to load cache item
at CglibDemo2.newInstance(CglibDemo2.java:25)
at CglibDemo2.main(CglibDemo2.java:51)
demo
javap -v Hello.class
result:Exception table star from 4.
cglib demo
Use arthas dump command to dump cglib class:
The cglib proxy class star from 0:
The CglibDemo works in cglib 3.2.12, error in cglib 3.3.0:
The text was updated successfully, but these errors were encountered: