public class sun.misc.ProxyGenerator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.misc.ProxyGenerator
super_class: java.lang.Object
{
private static final int CLASSFILE_MAJOR_VERSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 49
private static final int CLASSFILE_MINOR_VERSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int CONSTANT_UTF8;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int CONSTANT_UNICODE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int CONSTANT_INTEGER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int CONSTANT_FLOAT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int CONSTANT_LONG;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int CONSTANT_DOUBLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final int CONSTANT_CLASS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final int CONSTANT_STRING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int CONSTANT_FIELD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final int CONSTANT_METHOD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private static final int CONSTANT_INTERFACEMETHOD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 11
private static final int CONSTANT_NAMEANDTYPE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final int ACC_PUBLIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ACC_PRIVATE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int ACC_STATIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int ACC_FINAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int ACC_SUPER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int opc_aconst_null;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int opc_iconst_0;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int opc_bipush;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int opc_sipush;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 17
private static final int opc_ldc;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 18
private static final int opc_ldc_w;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 19
private static final int opc_iload;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 21
private static final int opc_lload;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 22
private static final int opc_fload;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 23
private static final int opc_dload;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 24
private static final int opc_aload;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 25
private static final int opc_iload_0;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 26
private static final int opc_lload_0;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 30
private static final int opc_fload_0;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 34
private static final int opc_dload_0;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 38
private static final int opc_aload_0;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 42
private static final int opc_astore;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 58
private static final int opc_astore_0;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 75
private static final int opc_aastore;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 83
private static final int opc_pop;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 87
private static final int opc_dup;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 89
private static final int opc_ireturn;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 172
private static final int opc_lreturn;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 173
private static final int opc_freturn;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 174
private static final int opc_dreturn;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 175
private static final int opc_areturn;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 176
private static final int opc_return;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 177
private static final int opc_getstatic;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 178
private static final int opc_putstatic;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 179
private static final int opc_getfield;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 180
private static final int opc_invokevirtual;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 182
private static final int opc_invokespecial;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 183
private static final int opc_invokestatic;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 184
private static final int opc_invokeinterface;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 185
private static final int opc_new;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 187
private static final int opc_anewarray;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 189
private static final int opc_athrow;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 191
private static final int opc_checkcast;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 192
private static final int opc_wide;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 196
private static final java.lang.String superclassName;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/reflect/Proxy"
private static final java.lang.String handlerFieldName;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "h"
private static final boolean saveGeneratedFiles;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static java.lang.reflect.Method hashCodeMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.reflect.Method equalsMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.reflect.Method toStringMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.lang.String className;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.Class[] interfaces;
descriptor: [Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
private sun.misc.ProxyGenerator$ConstantPool cp;
descriptor: Lsun/misc/ProxyGenerator$ConstantPool;
flags: (0x0002) ACC_PRIVATE
private java.util.List<sun.misc.ProxyGenerator$FieldInfo> fields;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lsun/misc/ProxyGenerator$FieldInfo;>;
private java.util.List<sun.misc.ProxyGenerator$MethodInfo> methods;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lsun/misc/ProxyGenerator$MethodInfo;>;
private java.util.Map<java.lang.String, java.util.List<sun.misc.ProxyGenerator$ProxyMethod>> proxyMethods;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;>;
private int proxyMethodCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=1, args_size=0
0: ldc Lsun/misc/ProxyGenerator;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
3: new sun.security.action.GetBooleanAction
dup
4: ldc "sun.misc.ProxyGenerator.saveGeneratedFiles"
5: invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
6: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
7: invokevirtual java.lang.Boolean.booleanValue:()Z
8: putstatic sun.misc.ProxyGenerator.saveGeneratedFiles:Z
9: ldc Ljava/lang/Object;
ldc "hashCode"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putstatic sun.misc.ProxyGenerator.hashCodeMethod:Ljava/lang/reflect/Method;
10: ldc Ljava/lang/Object;
ldc "equals"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
11: putstatic sun.misc.ProxyGenerator.equalsMethod:Ljava/lang/reflect/Method;
12: ldc Ljava/lang/Object;
ldc "toString"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putstatic sun.misc.ProxyGenerator.toStringMethod:Ljava/lang/reflect/Method;
13: goto 16
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
14: astore 0
start local 0 15: new java.lang.NoSuchMethodError
dup
aload 0
invokevirtual java.lang.NoSuchMethodException.getMessage:()Ljava/lang/String;
invokespecial java.lang.NoSuchMethodError.<init>:(Ljava/lang/String;)V
athrow
end local 0 16: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
15 16 0 e Ljava/lang/NoSuchMethodException;
Exception table:
from to target type
9 13 14 Class java.lang.NoSuchMethodException
public static byte[] generateProxyClass(java.lang.String, java.lang.Class[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Class;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: new sun.misc.ProxyGenerator
dup
aload 0
aload 1
invokespecial sun.misc.ProxyGenerator.<init>:(Ljava/lang/String;[Ljava/lang/Class;)V
astore 2
start local 2 1: aload 2
invokevirtual sun.misc.ProxyGenerator.generateClassFile:()[B
astore 3
start local 3 2: getstatic sun.misc.ProxyGenerator.saveGeneratedFiles:Z
ifeq 5
3: new sun.misc.ProxyGenerator$1
dup
aload 0
aload 3
invokespecial sun.misc.ProxyGenerator$1.<init>:(Ljava/lang/String;[B)V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
5: StackMap locals: sun.misc.ProxyGenerator byte[]
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 name Ljava/lang/String;
0 6 1 interfaces [Ljava/lang/Class;
1 6 2 gen Lsun/misc/ProxyGenerator;
2 6 3 classFile [B
MethodParameters:
Name Flags
name final
interfaces
private void <init>(java.lang.String, java.lang.Class[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new sun.misc.ProxyGenerator$ConstantPool
dup
invokespecial sun.misc.ProxyGenerator$ConstantPool.<init>:()V
putfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
4: aload 0
5: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
6: aload 0
iconst_0
putfield sun.misc.ProxyGenerator.proxyMethodCount:I
7: aload 0
aload 1
putfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
8: aload 0
aload 2
putfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/misc/ProxyGenerator;
0 10 1 className Ljava/lang/String;
0 10 2 interfaces [Ljava/lang/Class;
MethodParameters:
Name Flags
className
interfaces
private byte[] generateClassFile();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=1
start local 0 0: aload 0
getstatic sun.misc.ProxyGenerator.hashCodeMethod:Ljava/lang/reflect/Method;
ldc Ljava/lang/Object;
invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
1: aload 0
getstatic sun.misc.ProxyGenerator.equalsMethod:Ljava/lang/reflect/Method;
ldc Ljava/lang/Object;
invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
2: aload 0
getstatic sun.misc.ProxyGenerator.toStringMethod:Ljava/lang/reflect/Method;
ldc Ljava/lang/Object;
invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
3: iconst_0
istore 1
start local 1 4: goto 12
5: StackMap locals: int
StackMap stack:
aload 0
getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
iload 1
aaload
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
astore 2
start local 2 6: iconst_0
istore 3
start local 3 7: goto 10
8: StackMap locals: java.lang.reflect.Method[] int
StackMap stack:
aload 0
aload 2
iload 3
aaload
aload 0
getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
iload 1
aaload
invokevirtual sun.misc.ProxyGenerator.addProxyMethod:(Ljava/lang/reflect/Method;Ljava/lang/Class;)V
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 2
arraylength
if_icmplt 8
end local 3 end local 2 11: iinc 1 1
StackMap locals:
StackMap stack:
12: iload 1
aload 0
getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
arraylength
if_icmplt 5
end local 1 13: aload 0
getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 16
StackMap locals: sun.misc.ProxyGenerator top java.util.Iterator
StackMap stack:
14: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 1
start local 1 15: aload 1
invokestatic sun.misc.ProxyGenerator.checkReturnTypes:(Ljava/util/List;)V
end local 1 16: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
17: aload 0
getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
aload 0
invokevirtual sun.misc.ProxyGenerator.generateConstructor:()Lsun/misc/ProxyGenerator$MethodInfo;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
18: aload 0
getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
goto 28
StackMap locals:
StackMap stack:
19: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 1
start local 1 20: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 27
StackMap locals: sun.misc.ProxyGenerator java.util.List java.util.Iterator top java.util.Iterator
StackMap stack:
21: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.misc.ProxyGenerator$ProxyMethod
astore 3
start local 3 22: aload 0
getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
new sun.misc.ProxyGenerator$FieldInfo
dup
aload 0
aload 3
getfield sun.misc.ProxyGenerator$ProxyMethod.methodFieldName:Ljava/lang/String;
23: ldc "Ljava/lang/reflect/Method;"
24: bipush 10
invokespecial sun.misc.ProxyGenerator$FieldInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
25: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
26: aload 0
getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
aload 3
invokevirtual sun.misc.ProxyGenerator$ProxyMethod.generateMethod:()Lsun/misc/ProxyGenerator$MethodInfo;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 27: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
end local 1 28: StackMap locals: sun.misc.ProxyGenerator top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
29: aload 0
getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
aload 0
invokevirtual sun.misc.ProxyGenerator.generateStaticInitializer:()Lsun/misc/ProxyGenerator$MethodInfo;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
30: goto 33
StackMap locals: sun.misc.ProxyGenerator
StackMap stack: java.io.IOException
31: pop
32: new java.lang.InternalError
dup
ldc "unexpected I/O Exception"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
33: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
invokeinterface java.util.List.size:()I
ldc 65535
if_icmple 35
34: new java.lang.IllegalArgumentException
dup
ldc "method limit exceeded"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
ldc 65535
if_icmple 37
36: new java.lang.IllegalArgumentException
dup
ldc "field limit exceeded"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
37: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 0
getfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
pop
38: aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/reflect/Proxy"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
pop
39: iconst_0
istore 1
start local 1 40: goto 43
41: StackMap locals: int
StackMap stack:
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 0
getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
iload 1
aaload
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
pop
42: iinc 1 1
StackMap locals:
StackMap stack:
43: iload 1
aload 0
getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
arraylength
if_icmplt 41
end local 1 44: aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.setReadOnly:()V
45: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 1
start local 1 46: new java.io.DataOutputStream
dup
aload 1
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 2
start local 2 47: aload 2
ldc -889275714
invokevirtual java.io.DataOutputStream.writeInt:(I)V
48: aload 2
iconst_0
invokevirtual java.io.DataOutputStream.writeShort:(I)V
49: aload 2
bipush 49
invokevirtual java.io.DataOutputStream.writeShort:(I)V
50: aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 2
invokevirtual sun.misc.ProxyGenerator$ConstantPool.write:(Ljava/io/OutputStream;)V
51: aload 2
bipush 49
invokevirtual java.io.DataOutputStream.writeShort:(I)V
52: aload 2
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 0
getfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
53: aload 2
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/reflect/Proxy"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
54: aload 2
aload 0
getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
arraylength
invokevirtual java.io.DataOutputStream.writeShort:(I)V
55: iconst_0
istore 3
start local 3 56: goto 61
57: StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream int
StackMap stack:
aload 2
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
58: aload 0
getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
iload 3
aaload
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
59: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
60: iinc 3 1
StackMap locals:
StackMap stack:
61: iload 3
aload 0
getfield sun.misc.ProxyGenerator.interfaces:[Ljava/lang/Class;
arraylength
if_icmplt 57
end local 3 62: aload 2
aload 0
getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokevirtual java.io.DataOutputStream.writeShort:(I)V
63: aload 0
getfield sun.misc.ProxyGenerator.fields:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 66
StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream top java.util.Iterator
StackMap stack:
64: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.misc.ProxyGenerator$FieldInfo
astore 3
start local 3 65: aload 3
aload 2
invokevirtual sun.misc.ProxyGenerator$FieldInfo.write:(Ljava/io/DataOutputStream;)V
end local 3 66: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 64
67: aload 2
aload 0
getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokevirtual java.io.DataOutputStream.writeShort:(I)V
68: aload 0
getfield sun.misc.ProxyGenerator.methods:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 71
StackMap locals:
StackMap stack:
69: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.misc.ProxyGenerator$MethodInfo
astore 3
start local 3 70: aload 3
aload 2
invokevirtual sun.misc.ProxyGenerator$MethodInfo.write:(Ljava/io/DataOutputStream;)V
end local 3 71: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 69
72: aload 2
iconst_0
invokevirtual java.io.DataOutputStream.writeShort:(I)V
73: goto 76
StackMap locals: sun.misc.ProxyGenerator java.io.ByteArrayOutputStream java.io.DataOutputStream
StackMap stack: java.io.IOException
74: pop
75: new java.lang.InternalError
dup
ldc "unexpected I/O Exception"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
76: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 77 0 this Lsun/misc/ProxyGenerator;
4 13 1 i I
6 11 2 methods [Ljava/lang/reflect/Method;
7 11 3 j I
15 16 1 sigmethods Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
20 28 1 sigmethods Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
22 27 3 pm Lsun/misc/ProxyGenerator$ProxyMethod;
40 44 1 i I
46 77 1 bout Ljava/io/ByteArrayOutputStream;
47 77 2 dout Ljava/io/DataOutputStream;
56 62 3 i I
65 66 3 f Lsun/misc/ProxyGenerator$FieldInfo;
70 71 3 m Lsun/misc/ProxyGenerator$MethodInfo;
Exception table:
from to target type
17 30 31 Class java.io.IOException
47 73 74 Class java.io.IOException
private void addProxyMethod(java.lang.reflect.Method, java.lang.Class<?>);
descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
astore 3
start local 3 1: aload 1
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
astore 4
start local 4 2: aload 1
invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
astore 5
start local 5 3: aload 1
invokevirtual java.lang.reflect.Method.getExceptionTypes:()[Ljava/lang/Class;
astore 6
start local 6 4: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokestatic sun.misc.ProxyGenerator.getParameterDescriptors:([Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
start local 7 5: aload 0
getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 8
start local 8 6: aload 8
ifnull 22
7: aload 8
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 20
StackMap locals: sun.misc.ProxyGenerator java.lang.reflect.Method java.lang.Class java.lang.String java.lang.Class[] java.lang.Class java.lang.Class[] java.lang.String java.util.List top java.util.Iterator
StackMap stack:
8: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.misc.ProxyGenerator$ProxyMethod
astore 9
start local 9 9: aload 5
aload 9
getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
if_acmpne 20
10: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 11
start local 11 11: aload 6
aload 9
getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
aload 11
12: invokestatic sun.misc.ProxyGenerator.collectCompatibleTypes:([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
13: aload 9
getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
aload 6
aload 11
14: invokestatic sun.misc.ProxyGenerator.collectCompatibleTypes:([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
15: aload 9
aload 11
invokeinterface java.util.List.size:()I
anewarray java.lang.Class
putfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
16: aload 9
17: aload 11
aload 9
getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
18: putfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
19: return
end local 11 end local 9 20: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
21: goto 24
22: StackMap locals: sun.misc.ProxyGenerator java.lang.reflect.Method java.lang.Class java.lang.String java.lang.Class[] java.lang.Class java.lang.Class[] java.lang.String java.util.List
StackMap stack:
new java.util.ArrayList
dup
iconst_3
invokespecial java.util.ArrayList.<init>:(I)V
astore 8
23: aload 0
getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
aload 7
aload 8
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: StackMap locals:
StackMap stack:
aload 8
new sun.misc.ProxyGenerator$ProxyMethod
dup
aload 0
aload 3
aload 4
aload 5
25: aload 6
aload 2
invokespecial sun.misc.ProxyGenerator$ProxyMethod.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Class;)V
26: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
27: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/misc/ProxyGenerator;
0 28 1 m Ljava/lang/reflect/Method;
0 28 2 fromClass Ljava/lang/Class<*>;
1 28 3 name Ljava/lang/String;
2 28 4 parameterTypes [Ljava/lang/Class;
3 28 5 returnType Ljava/lang/Class<*>;
4 28 6 exceptionTypes [Ljava/lang/Class;
5 28 7 sig Ljava/lang/String;
6 28 8 sigmethods Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
9 20 9 pm Lsun/misc/ProxyGenerator$ProxyMethod;
11 20 11 legalExceptions Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/lang/reflect/Method;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
m
fromClass
private static void checkReturnTypes(java.util.List<sun.misc.ProxyGenerator$ProxyMethod>);
descriptor: (Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aload 0
invokeinterface java.util.List.size:()I
iconst_2
if_icmpge 2
1: return
2: StackMap locals:
StackMap stack:
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 1
start local 1 3: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 31
StackMap locals: java.util.List java.util.LinkedList top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.misc.ProxyGenerator$ProxyMethod
astore 2
start local 2 5: aload 2
getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
astore 4
start local 4 6: aload 4
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 16
7: new java.lang.IllegalArgumentException
dup
8: new java.lang.StringBuilder
dup
ldc "methods with same signature "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 2
getfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
10: aload 2
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
11: invokestatic sun.misc.ProxyGenerator.getFriendlyMethodSignature:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc " but incompatible return types: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: aload 4
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and others"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: java.util.List java.util.LinkedList sun.misc.ProxyGenerator$ProxyMethod java.util.Iterator java.lang.Class
StackMap stack:
iconst_0
istore 5
start local 5 17: aload 1
invokevirtual java.util.LinkedList.listIterator:()Ljava/util/ListIterator;
astore 6
start local 6 18: goto 28
19: StackMap locals: int java.util.ListIterator
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 7
start local 7 20: aload 4
aload 7
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 22
21: getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
ifne 31
iload 5
ifeq 31
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals: java.lang.Class
StackMap stack:
aload 7
aload 4
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 28
23: iload 5
ifne 27
24: aload 6
aload 4
invokeinterface java.util.ListIterator.set:(Ljava/lang/Object;)V
25: iconst_1
istore 5
26: goto 28
27: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.remove:()V
end local 7 28: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.hasNext:()Z
ifne 19
29: iload 5
ifne 31
30: aload 1
aload 4
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 4 end local 2 31: StackMap locals: java.util.List java.util.LinkedList top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
32: aload 1
invokevirtual java.util.LinkedList.size:()I
iconst_1
if_icmple 40
33: aload 0
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast sun.misc.ProxyGenerator$ProxyMethod
astore 2
start local 2 34: new java.lang.IllegalArgumentException
dup
35: new java.lang.StringBuilder
dup
ldc "methods with same signature "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
36: aload 2
getfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
aload 2
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
invokestatic sun.misc.ProxyGenerator.getFriendlyMethodSignature:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
37: ldc " but incompatible return types: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
38: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
39: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 40: StackMap locals: java.util.List java.util.LinkedList
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 methods Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
3 41 1 uncoveredReturnTypes Ljava/util/LinkedList<Ljava/lang/Class<*>;>;
5 31 2 pm Lsun/misc/ProxyGenerator$ProxyMethod;
6 31 4 newReturnType Ljava/lang/Class<*>;
17 31 5 added Z
18 31 6 liter Ljava/util/ListIterator<Ljava/lang/Class<*>;>;
20 28 7 uncoveredReturnType Ljava/lang/Class<*>;
34 40 2 pm Lsun/misc/ProxyGenerator$ProxyMethod;
Signature: (Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;)V
MethodParameters:
Name Flags
methods
private sun.misc.ProxyGenerator$MethodInfo generateConstructor();
descriptor: ()Lsun/misc/ProxyGenerator$MethodInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: new sun.misc.ProxyGenerator$MethodInfo
dup
aload 0
1: ldc "<init>"
ldc "(Ljava/lang/reflect/InvocationHandler;)V"
2: iconst_1
3: invokespecial sun.misc.ProxyGenerator$MethodInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
astore 1
start local 1 4: new java.io.DataOutputStream
dup
aload 1
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 2
start local 2 5: aload 0
iconst_0
aload 2
invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
6: aload 0
iconst_1
aload 2
invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
7: aload 2
sipush 183
invokevirtual java.io.DataOutputStream.writeByte:(I)V
8: aload 2
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
9: ldc "java/lang/reflect/Proxy"
10: ldc "<init>"
ldc "(Ljava/lang/reflect/InvocationHandler;)V"
11: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
12: aload 2
sipush 177
invokevirtual java.io.DataOutputStream.writeByte:(I)V
13: aload 1
bipush 10
putfield sun.misc.ProxyGenerator$MethodInfo.maxStack:S
14: aload 1
iconst_2
putfield sun.misc.ProxyGenerator$MethodInfo.maxLocals:S
15: aload 1
iconst_0
newarray 9
putfield sun.misc.ProxyGenerator$MethodInfo.declaredExceptions:[S
16: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/misc/ProxyGenerator;
4 17 1 minfo Lsun/misc/ProxyGenerator$MethodInfo;
5 17 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
private sun.misc.ProxyGenerator$MethodInfo generateStaticInitializer();
descriptor: ()Lsun/misc/ProxyGenerator$MethodInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=11, args_size=1
start local 0 0: new sun.misc.ProxyGenerator$MethodInfo
dup
aload 0
1: ldc "<clinit>"
ldc "()V"
bipush 8
2: invokespecial sun.misc.ProxyGenerator$MethodInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
astore 1
start local 1 3: iconst_1
istore 2
start local 2 4: iconst_0
istore 4
start local 4 5: new java.io.DataOutputStream
dup
aload 1
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 6
start local 6 6: aload 0
getfield sun.misc.ProxyGenerator.proxyMethods:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 8
goto 12
StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream top java.util.Iterator
StackMap stack:
7: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 7
start local 7 8: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 11
StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream java.util.List java.util.Iterator top java.util.Iterator
StackMap stack:
9: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.misc.ProxyGenerator$ProxyMethod
astore 9
start local 9 10: aload 9
aload 6
invokevirtual sun.misc.ProxyGenerator$ProxyMethod.codeFieldInitialization:(Ljava/io/DataOutputStream;)V
end local 9 11: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 7 12: StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int top int top java.io.DataOutputStream top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
13: aload 6
sipush 177
invokevirtual java.io.DataOutputStream.writeByte:(I)V
14: aload 1
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2s
dup
istore 3
start local 3 15: istore 5
start local 5 16: aload 1
getfield sun.misc.ProxyGenerator$MethodInfo.exceptionTable:Ljava/util/List;
new sun.misc.ProxyGenerator$ExceptionTableEntry
dup
17: iload 4
iload 5
iload 3
18: aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/NoSuchMethodException"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokespecial sun.misc.ProxyGenerator$ExceptionTableEntry.<init>:(SSSS)V
19: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
20: aload 0
iload 2
aload 6
invokevirtual sun.misc.ProxyGenerator.code_astore:(ILjava/io/DataOutputStream;)V
21: aload 6
sipush 187
invokevirtual java.io.DataOutputStream.writeByte:(I)V
22: aload 6
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/NoSuchMethodError"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
23: aload 6
bipush 89
invokevirtual java.io.DataOutputStream.writeByte:(I)V
24: aload 0
iload 2
aload 6
invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
25: aload 6
sipush 182
invokevirtual java.io.DataOutputStream.writeByte:(I)V
26: aload 6
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
27: ldc "java/lang/Throwable"
ldc "getMessage"
ldc "()Ljava/lang/String;"
28: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
29: aload 6
sipush 183
invokevirtual java.io.DataOutputStream.writeByte:(I)V
30: aload 6
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
31: ldc "java/lang/NoSuchMethodError"
ldc "<init>"
ldc "(Ljava/lang/String;)V"
32: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
33: aload 6
sipush 191
invokevirtual java.io.DataOutputStream.writeByte:(I)V
34: aload 1
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2s
istore 3
35: aload 1
getfield sun.misc.ProxyGenerator$MethodInfo.exceptionTable:Ljava/util/List;
new sun.misc.ProxyGenerator$ExceptionTableEntry
dup
36: iload 4
iload 5
iload 3
37: aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/ClassNotFoundException"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokespecial sun.misc.ProxyGenerator$ExceptionTableEntry.<init>:(SSSS)V
38: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
39: aload 0
iload 2
aload 6
invokevirtual sun.misc.ProxyGenerator.code_astore:(ILjava/io/DataOutputStream;)V
40: aload 6
sipush 187
invokevirtual java.io.DataOutputStream.writeByte:(I)V
41: aload 6
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/NoClassDefFoundError"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
42: aload 6
bipush 89
invokevirtual java.io.DataOutputStream.writeByte:(I)V
43: aload 0
iload 2
aload 6
invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
44: aload 6
sipush 182
invokevirtual java.io.DataOutputStream.writeByte:(I)V
45: aload 6
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
46: ldc "java/lang/Throwable"
ldc "getMessage"
ldc "()Ljava/lang/String;"
47: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
48: aload 6
sipush 183
invokevirtual java.io.DataOutputStream.writeByte:(I)V
49: aload 6
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
50: ldc "java/lang/NoClassDefFoundError"
51: ldc "<init>"
ldc "(Ljava/lang/String;)V"
52: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
53: aload 6
sipush 191
invokevirtual java.io.DataOutputStream.writeByte:(I)V
54: aload 1
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.size:()I
ldc 65535
if_icmple 56
55: new java.lang.IllegalArgumentException
dup
ldc "code size limit exceeded"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
56: StackMap locals: sun.misc.ProxyGenerator sun.misc.ProxyGenerator$MethodInfo int int int int java.io.DataOutputStream
StackMap stack:
aload 1
bipush 10
putfield sun.misc.ProxyGenerator$MethodInfo.maxStack:S
57: aload 1
iload 2
iconst_1
iadd
i2s
putfield sun.misc.ProxyGenerator$MethodInfo.maxLocals:S
58: aload 1
iconst_0
newarray 9
putfield sun.misc.ProxyGenerator$MethodInfo.declaredExceptions:[S
59: aload 1
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lsun/misc/ProxyGenerator;
3 60 1 minfo Lsun/misc/ProxyGenerator$MethodInfo;
4 60 2 localSlot0 I
15 60 3 pc S
5 60 4 tryBegin S
16 60 5 tryEnd S
6 60 6 out Ljava/io/DataOutputStream;
8 12 7 sigmethods Ljava/util/List<Lsun/misc/ProxyGenerator$ProxyMethod;>;
10 11 9 pm Lsun/misc/ProxyGenerator$ProxyMethod;
Exceptions:
throws java.io.IOException
private void code_iload(int, java.io.DataOutputStream);
descriptor: (ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
bipush 21
bipush 26
aload 2
invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/ProxyGenerator;
0 2 1 lvar I
0 2 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
lvar
out
private void code_lload(int, java.io.DataOutputStream);
descriptor: (ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
bipush 22
bipush 30
aload 2
invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/ProxyGenerator;
0 2 1 lvar I
0 2 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
lvar
out
private void code_fload(int, java.io.DataOutputStream);
descriptor: (ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
bipush 23
bipush 34
aload 2
invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/ProxyGenerator;
0 2 1 lvar I
0 2 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
lvar
out
private void code_dload(int, java.io.DataOutputStream);
descriptor: (ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
bipush 24
bipush 38
aload 2
invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/ProxyGenerator;
0 2 1 lvar I
0 2 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
lvar
out
private void code_aload(int, java.io.DataOutputStream);
descriptor: (ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
bipush 25
bipush 42
aload 2
invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/ProxyGenerator;
0 2 1 lvar I
0 2 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
lvar
out
private void code_astore(int, java.io.DataOutputStream);
descriptor: (ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
bipush 58
bipush 75
aload 2
invokevirtual sun.misc.ProxyGenerator.codeLocalLoadStore:(IIILjava/io/DataOutputStream;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/misc/ProxyGenerator;
0 2 1 lvar I
0 2 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
lvar
out
private void codeLocalLoadStore(int, int, int, java.io.DataOutputStream);
descriptor: (IIILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
ifne 2
iload 1
iflt 1
iload 1
ldc 65535
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 1
iconst_3
if_icmpgt 5
3: aload 4
iload 3
iload 1
iadd
invokevirtual java.io.DataOutputStream.writeByte:(I)V
4: goto 12
StackMap locals:
StackMap stack:
5: iload 1
sipush 255
if_icmpgt 9
6: aload 4
iload 2
invokevirtual java.io.DataOutputStream.writeByte:(I)V
7: aload 4
iload 1
sipush 255
iand
invokevirtual java.io.DataOutputStream.writeByte:(I)V
8: goto 12
9: StackMap locals:
StackMap stack:
aload 4
sipush 196
invokevirtual java.io.DataOutputStream.writeByte:(I)V
10: aload 4
iload 2
invokevirtual java.io.DataOutputStream.writeByte:(I)V
11: aload 4
iload 1
ldc 65535
iand
invokevirtual java.io.DataOutputStream.writeShort:(I)V
12: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/misc/ProxyGenerator;
0 13 1 lvar I
0 13 2 opcode I
0 13 3 opcode_0 I
0 13 4 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
lvar
opcode
opcode_0
out
private void code_ldc(int, java.io.DataOutputStream);
descriptor: (ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.misc.ProxyGenerator.$assertionsDisabled:Z
ifne 2
iload 1
iflt 1
iload 1
ldc 65535
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 1
sipush 255
if_icmpgt 6
3: aload 2
bipush 18
invokevirtual java.io.DataOutputStream.writeByte:(I)V
4: aload 2
iload 1
sipush 255
iand
invokevirtual java.io.DataOutputStream.writeByte:(I)V
5: goto 8
6: StackMap locals:
StackMap stack:
aload 2
bipush 19
invokevirtual java.io.DataOutputStream.writeByte:(I)V
7: aload 2
iload 1
ldc 65535
iand
invokevirtual java.io.DataOutputStream.writeShort:(I)V
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/misc/ProxyGenerator;
0 9 1 index I
0 9 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
index
out
private void code_ipush(int, java.io.DataOutputStream);
descriptor: (ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iconst_m1
if_icmplt 3
iload 1
iconst_5
if_icmpgt 3
1: aload 2
iconst_3
iload 1
iadd
invokevirtual java.io.DataOutputStream.writeByte:(I)V
2: goto 12
StackMap locals:
StackMap stack:
3: iload 1
bipush -128
if_icmplt 7
iload 1
bipush 127
if_icmpgt 7
4: aload 2
bipush 16
invokevirtual java.io.DataOutputStream.writeByte:(I)V
5: aload 2
iload 1
sipush 255
iand
invokevirtual java.io.DataOutputStream.writeByte:(I)V
6: goto 12
StackMap locals:
StackMap stack:
7: iload 1
sipush -32768
if_icmplt 11
iload 1
sipush 32767
if_icmpgt 11
8: aload 2
bipush 17
invokevirtual java.io.DataOutputStream.writeByte:(I)V
9: aload 2
iload 1
ldc 65535
iand
invokevirtual java.io.DataOutputStream.writeShort:(I)V
10: goto 12
11: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/misc/ProxyGenerator;
0 13 1 value I
0 13 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
value
out
private void codeClassForName(java.lang.Class<?>, java.io.DataOutputStream);
descriptor: (Ljava/lang/Class;Ljava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getString:(Ljava/lang/String;)S
aload 2
invokevirtual sun.misc.ProxyGenerator.code_ldc:(ILjava/io/DataOutputStream;)V
1: aload 2
sipush 184
invokevirtual java.io.DataOutputStream.writeByte:(I)V
2: aload 2
aload 0
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
3: ldc "java/lang/Class"
4: ldc "forName"
ldc "(Ljava/lang/String;)Ljava/lang/Class;"
5: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/misc/ProxyGenerator;
0 7 1 cl Ljava/lang/Class<*>;
0 7 2 out Ljava/io/DataOutputStream;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/Class<*>;Ljava/io/DataOutputStream;)V
MethodParameters:
Name Flags
cl
out
private static java.lang.String dotToSlash(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name
private static java.lang.String getMethodDescriptor(java.lang.Class<?>[], java.lang.Class<?>);
descriptor: ([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
aload 0
invokestatic sun.misc.ProxyGenerator.getParameterDescriptors:([Ljava/lang/Class;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 1
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 2
ldc "V"
goto 3
StackMap locals:
StackMap stack: java.lang.StringBuilder
2: aload 1
invokestatic sun.misc.ProxyGenerator.getFieldType:(Ljava/lang/Class;)Ljava/lang/String;
StackMap locals: java.lang.Class[] java.lang.Class
StackMap stack: java.lang.StringBuilder java.lang.String
3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 parameterTypes [Ljava/lang/Class;
0 5 1 returnType Ljava/lang/Class<*>;
Signature: ([Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
parameterTypes
returnType
private static java.lang.String getParameterDescriptors(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 1
aload 0
iload 2
aaload
invokestatic sun.misc.ProxyGenerator.getFieldType:(Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
arraylength
if_icmplt 3
end local 2 6: aload 1
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 parameterTypes [Ljava/lang/Class;
1 8 1 desc Ljava/lang/StringBuilder;
2 6 2 i I
Signature: ([Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
parameterTypes
private static java.lang.String getFieldType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 2
1: aload 0
invokestatic sun.misc.ProxyGenerator$PrimitiveTypeInfo.get:(Ljava/lang/Class;)Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.baseTypeString:Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.isArray:()Z
ifeq 4
3: aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
areturn
4: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "L"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ";"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 type Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
type
private static java.lang.String getFriendlyMethodSignature(java.lang.String, java.lang.Class<?>[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
aload 0
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 1: aload 2
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
2: iconst_0
istore 3
start local 3 3: goto 17
4: StackMap locals: java.lang.StringBuilder int
StackMap stack:
iload 3
ifle 6
5: aload 2
bipush 44
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: StackMap locals:
StackMap stack:
aload 1
iload 3
aaload
astore 4
start local 4 7: iconst_0
istore 5
start local 5 8: goto 11
9: StackMap locals: java.lang.Class int
StackMap stack:
aload 4
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 4
10: iinc 5 1
11: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.Class.isArray:()Z
ifne 9
12: aload 2
aload 4
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: goto 15
14: StackMap locals:
StackMap stack:
aload 2
ldc "[]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: StackMap locals:
StackMap stack:
iload 5
iinc 5 -1
ifgt 14
end local 5 end local 4 16: iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
aload 1
arraylength
if_icmplt 4
end local 3 18: aload 2
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
19: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 name Ljava/lang/String;
0 20 1 parameterTypes [Ljava/lang/Class;
1 20 2 sig Ljava/lang/StringBuilder;
3 18 3 i I
7 16 4 parameterType Ljava/lang/Class<*>;
8 16 5 dimensions I
Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
name
parameterTypes
private static int getWordsPerType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpeq 1
aload 0
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 2
1: StackMap locals:
StackMap stack:
iconst_2
ireturn
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 type Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)I
MethodParameters:
Name Flags
type
private static void collectCompatibleTypes(java.lang.Class<?>[], java.lang.Class<?>[], java.util.List<java.lang.Class<?>>);
descriptor: ([Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 11
2: StackMap locals: int
StackMap stack:
aload 2
aload 0
iload 3
aaload
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 10
3: iconst_0
istore 4
start local 4 4: goto 9
5: StackMap locals: int
StackMap stack:
aload 1
iload 4
aaload
aload 0
iload 3
aaload
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 8
6: aload 2
aload 0
iload 3
aaload
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: goto 10
8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
aload 1
arraylength
if_icmplt 5
end local 4 10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
aload 0
arraylength
if_icmplt 2
end local 3 12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 from [Ljava/lang/Class;
0 13 1 with [Ljava/lang/Class;
0 13 2 list Ljava/util/List<Ljava/lang/Class<*>;>;
1 12 3 i I
4 10 4 j I
Signature: ([Ljava/lang/Class<*>;[Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
MethodParameters:
Name Flags
from
with
list
private static java.util.List<java.lang.Class<?>> computeUniqueCatchList(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 1
ldc Ljava/lang/Error;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 1
ldc Ljava/lang/RuntimeException;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: iconst_0
istore 2
start local 2 4: goto 23
5: StackMap locals: java.util.List int
StackMap stack:
aload 0
iload 2
aaload
astore 3
start local 3 6: aload 3
ldc Ljava/lang/Throwable;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 9
7: aload 1
invokeinterface java.util.List.clear:()V
8: goto 24
9: StackMap locals: java.lang.Class
StackMap stack:
ldc Ljava/lang/Throwable;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 11
10: goto 22
11: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 12: goto 20
13: StackMap locals: int
StackMap stack:
aload 1
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Class
astore 5
start local 5 14: aload 5
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 16
15: goto 22
16: StackMap locals: java.lang.Class
StackMap stack:
aload 3
aload 5
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 19
17: aload 1
iload 4
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
18: goto 20
19: StackMap locals:
StackMap stack:
iinc 4 1
end local 5 20: StackMap locals:
StackMap stack:
iload 4
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 13
end local 4 21: aload 1
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 22: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
23: iload 2
aload 0
arraylength
if_icmplt 5
end local 2 24: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 exceptions [Ljava/lang/Class;
1 25 1 uniqueList Ljava/util/List<Ljava/lang/Class<*>;>;
4 24 2 i I
6 22 3 ex Ljava/lang/Class<*>;
12 21 4 j I
14 20 5 ex2 Ljava/lang/Class<*>;
Signature: ([Ljava/lang/Class<*>;)Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
exceptions
}
SourceFile: "ProxyGenerator.java"
NestMembers:
sun.misc.ProxyGenerator$1 sun.misc.ProxyGenerator$ConstantPool sun.misc.ProxyGenerator$ConstantPool$Entry sun.misc.ProxyGenerator$ConstantPool$IndirectEntry sun.misc.ProxyGenerator$ConstantPool$ValueEntry sun.misc.ProxyGenerator$ExceptionTableEntry sun.misc.ProxyGenerator$FieldInfo sun.misc.ProxyGenerator$MethodInfo sun.misc.ProxyGenerator$PrimitiveTypeInfo sun.misc.ProxyGenerator$ProxyMethod
InnerClasses:
sun.misc.ProxyGenerator$1
private ConstantPool = sun.misc.ProxyGenerator$ConstantPool of sun.misc.ProxyGenerator
private ExceptionTableEntry = sun.misc.ProxyGenerator$ExceptionTableEntry of sun.misc.ProxyGenerator
private FieldInfo = sun.misc.ProxyGenerator$FieldInfo of sun.misc.ProxyGenerator
private MethodInfo = sun.misc.ProxyGenerator$MethodInfo of sun.misc.ProxyGenerator
private PrimitiveTypeInfo = sun.misc.ProxyGenerator$PrimitiveTypeInfo of sun.misc.ProxyGenerator
private ProxyMethod = sun.misc.ProxyGenerator$ProxyMethod of sun.misc.ProxyGenerator