class org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference
super_class: java.lang.Object
{
private java.lang.String className;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String methodName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.ref.Reference<java.lang.reflect.Method> methodRef;
descriptor: Ljava/lang/ref/Reference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/Reference<Ljava/lang/reflect/Method;>;
private java.lang.ref.Reference<java.lang.Class<?>> classRef;
descriptor: Ljava/lang/ref/Reference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/Reference<Ljava/lang/Class<*>;>;
private java.lang.ref.Reference<java.lang.Class<?>> writeParamTypeRef0;
descriptor: Ljava/lang/ref/Reference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/Reference<Ljava/lang/Class<*>;>;
private java.lang.ref.Reference<java.lang.Class<?>> writeParamTypeRef1;
descriptor: Ljava/lang/ref/Reference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/Reference<Ljava/lang/Class<*>;>;
private java.lang.String[] writeParamClassNames;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.reflect.Method);
descriptor: (Ljava/lang/reflect/Method;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 // org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference this
start local 1 // java.lang.reflect.Method m
0: .line 432
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 433
aload 1 /* m */
ifnull 13
2: .line 434
aload 0 /* this */
aload 1 /* m */
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.className:Ljava/lang/String;
3: .line 435
aload 0 /* this */
aload 1 /* m */
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.methodName:Ljava/lang/String;
4: .line 436
aload 0 /* this */
new java.lang.ref.SoftReference
dup
aload 1 /* m */
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.methodRef:Ljava/lang/ref/Reference;
5: .line 437
aload 0 /* this */
new java.lang.ref.WeakReference
dup
aload 1 /* m */
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.classRef:Ljava/lang/ref/Reference;
6: .line 438
aload 1 /* m */
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
astore 2 /* types */
start local 2 // java.lang.Class[] types
7: .line 439
aload 2 /* types */
arraylength
iconst_2
if_icmpne 13
8: .line 440
aload 0 /* this */
new java.lang.ref.WeakReference
dup
aload 2 /* types */
iconst_0
aaload
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamTypeRef0:Ljava/lang/ref/Reference;
9: .line 441
aload 0 /* this */
new java.lang.ref.WeakReference
dup
aload 2 /* types */
iconst_1
aaload
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamTypeRef1:Ljava/lang/ref/Reference;
10: .line 442
aload 0 /* this */
iconst_2
anewarray java.lang.String
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamClassNames:[Ljava/lang/String;
11: .line 443
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamClassNames:[Ljava/lang/String;
iconst_0
aload 2 /* types */
iconst_0
aaload
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
12: .line 444
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamClassNames:[Ljava/lang/String;
iconst_1
aload 2 /* types */
iconst_1
aaload
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
end local 2 // java.lang.Class[] types
13: .line 447
StackMap locals: org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference java.lang.reflect.Method
StackMap stack:
return
end local 1 // java.lang.reflect.Method m
end local 0 // org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/commons/beanutils/MappedPropertyDescriptor$MappedMethodReference;
0 14 1 m Ljava/lang/reflect/Method;
7 13 2 types [Ljava/lang/Class;
MethodParameters:
Name Flags
m final
private java.lang.reflect.Method get();
descriptor: ()Ljava/lang/reflect/Method;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 // org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference this
0: .line 449
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.methodRef:Ljava/lang/ref/Reference;
ifnonnull 2
1: .line 450
aconst_null
areturn
2: .line 452
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.methodRef:Ljava/lang/ref/Reference;
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 1 /* m */
start local 1 // java.lang.reflect.Method m
3: .line 453
aload 1 /* m */
ifnonnull 35
4: .line 454
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.classRef:Ljava/lang/ref/Reference;
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
checkcast java.lang.Class
astore 2 /* clazz */
start local 2 // java.lang.Class clazz
5: .line 455
aload 2 /* clazz */
ifnonnull 9
6: .line 456
aload 0 /* this */
invokevirtual org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.reLoadClass:()Ljava/lang/Class;
astore 2 /* clazz */
7: .line 457
aload 2 /* clazz */
ifnull 9
8: .line 458
aload 0 /* this */
new java.lang.ref.WeakReference
dup
aload 2 /* clazz */
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.classRef:Ljava/lang/ref/Reference;
9: .line 461
StackMap locals: java.lang.reflect.Method java.lang.Class
StackMap stack:
aload 2 /* clazz */
ifnonnull 13
10: .line 462
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.methodName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: .line 463
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.className:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " could not be reconstructed - class reference has gone"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: .line 462
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
13: .line 465
StackMap locals:
StackMap stack:
aconst_null
astore 3 /* paramTypes */
start local 3 // java.lang.Class[] paramTypes
14: .line 466
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamClassNames:[Ljava/lang/String;
ifnull 27
15: .line 467
iconst_2
anewarray java.lang.Class
astore 3 /* paramTypes */
16: .line 468
aload 3 /* paramTypes */
iconst_0
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamTypeRef0:Ljava/lang/ref/Reference;
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
checkcast java.lang.Class
aastore
17: .line 469
aload 3 /* paramTypes */
iconst_0
aaload
ifnonnull 21
18: .line 470
aload 3 /* paramTypes */
iconst_0
aload 0 /* this */
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamClassNames:[Ljava/lang/String;
iconst_0
aaload
invokevirtual org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.reLoadClass:(Ljava/lang/String;)Ljava/lang/Class;
aastore
19: .line 471
aload 3 /* paramTypes */
iconst_0
aaload
ifnull 21
20: .line 472
aload 0 /* this */
new java.lang.ref.WeakReference
dup
aload 3 /* paramTypes */
iconst_0
aaload
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamTypeRef0:Ljava/lang/ref/Reference;
21: .line 475
StackMap locals: java.lang.Class[]
StackMap stack:
aload 3 /* paramTypes */
iconst_1
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamTypeRef1:Ljava/lang/ref/Reference;
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
checkcast java.lang.Class
aastore
22: .line 476
aload 3 /* paramTypes */
iconst_1
aaload
ifnonnull 28
23: .line 477
aload 3 /* paramTypes */
iconst_1
aload 0 /* this */
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamClassNames:[Ljava/lang/String;
iconst_1
aaload
invokevirtual org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.reLoadClass:(Ljava/lang/String;)Ljava/lang/Class;
aastore
24: .line 478
aload 3 /* paramTypes */
iconst_1
aaload
ifnull 28
25: .line 479
aload 0 /* this */
new java.lang.ref.WeakReference
dup
aload 3 /* paramTypes */
iconst_1
aaload
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.writeParamTypeRef1:Ljava/lang/ref/Reference;
26: .line 482
goto 28
27: .line 483
StackMap locals:
StackMap stack:
getstatic org.apache.commons.beanutils.MappedPropertyDescriptor.STRING_CLASS_PARAMETER:[Ljava/lang/Class;
astore 3 /* paramTypes */
28: .line 486
StackMap locals:
StackMap stack:
aload 2 /* clazz */
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.methodName:Ljava/lang/String;
aload 3 /* paramTypes */
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 1 /* m */
29: .line 489
goto 34
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
30: pop
31: .line 490
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.methodName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
32: .line 491
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.className:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " could not be reconstructed - method not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: .line 490
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
34: .line 493
StackMap locals:
StackMap stack:
aload 0 /* this */
new java.lang.ref.SoftReference
dup
aload 1 /* m */
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
putfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.methodRef:Ljava/lang/ref/Reference;
end local 3 // java.lang.Class[] paramTypes
end local 2 // java.lang.Class clazz
35: .line 495
StackMap locals:
StackMap stack:
aload 1 /* m */
areturn
end local 1 // java.lang.reflect.Method m
end local 0 // org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference this
LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/apache/commons/beanutils/MappedPropertyDescriptor$MappedMethodReference;
3 36 1 m Ljava/lang/reflect/Method;
5 35 2 clazz Ljava/lang/Class<*>;
14 35 3 paramTypes [Ljava/lang/Class;
Exception table:
from to target type
28 29 30 Class java.lang.NoSuchMethodException
private java.lang.Class<?> reLoadClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 // org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference this
0: .line 502
aload 0 /* this */
aload 0 /* this */
getfield org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.className:Ljava/lang/String;
invokevirtual org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.reLoadClass:(Ljava/lang/String;)Ljava/lang/Class;
areturn
end local 0 // org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/beanutils/MappedPropertyDescriptor$MappedMethodReference;
Signature: ()Ljava/lang/Class<*>;
private java.lang.Class<?> reLoadClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 // org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference this
start local 1 // java.lang.String name
0: .line 510
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 2 /* classLoader */
start local 2 // java.lang.ClassLoader classLoader
1: .line 513
aload 2 /* classLoader */
ifnull 5
2: .line 515
aload 2 /* classLoader */
aload 1 /* name */
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
3: areturn
4: .line 516
StackMap locals: org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference java.lang.String java.lang.ClassLoader
StackMap stack: java.lang.ClassNotFoundException
pop
5: .line 522
StackMap locals:
StackMap stack:
ldc Lorg/apache/commons/beanutils/MappedPropertyDescriptor;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 2 /* classLoader */
6: .line 524
aload 2 /* classLoader */
aload 1 /* name */
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
7: areturn
8: .line 525
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
9: .line 526
aconst_null
areturn
end local 2 // java.lang.ClassLoader classLoader
end local 1 // java.lang.String name
end local 0 // org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/commons/beanutils/MappedPropertyDescriptor$MappedMethodReference;
0 10 1 name Ljava/lang/String;
1 10 2 classLoader Ljava/lang/ClassLoader;
Exception table:
from to target type
2 3 4 Class java.lang.ClassNotFoundException
6 7 8 Class java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name final
}
SourceFile: "MappedPropertyDescriptor.java"
NestHost: org.apache.commons.beanutils.MappedPropertyDescriptor
InnerClasses:
private MappedMethodReference = org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference of org.apache.commons.beanutils.MappedPropertyDescriptor