public class com.sun.org.glassfish.gmbal.util.GenericConstructor<T>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.org.glassfish.gmbal.util.GenericConstructor
super_class: java.lang.Object
{
private final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String typeName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.Class<T> resultType;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<TT;>;
private java.lang.Class<?> type;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
private java.lang.Class<?>[] signature;
descriptor: [Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: [Ljava/lang/Class<*>;
private java.lang.reflect.Constructor constructor;
descriptor: Ljava/lang/reflect/Constructor;
flags: (0x0002) ACC_PRIVATE
public void <init>(java.lang.Class<T>, java.lang.String, java.lang.Class<?>[]);
descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.lock:Ljava/lang/Object;
2: aload 0
aload 1
putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.resultType:Ljava/lang/Class;
3: aload 0
aload 2
putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.typeName:Ljava/lang/String;
4: aload 0
aload 3
invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
checkcast java.lang.Class[]
putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.signature:[Ljava/lang/Class;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/org/glassfish/gmbal/util/GenericConstructor<TT;>;
0 6 1 type Ljava/lang/Class<TT;>;
0 6 2 className Ljava/lang/String;
0 6 3 signature [Ljava/lang/Class;
Signature: (Ljava/lang/Class<TT;>;Ljava/lang/String;[Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
type final
className final
signature final
private void getConstructor();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.type:Ljava/lang/Class;
ifnull 2
aload 0
getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
ifnonnull 11
2: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 0
getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.typeName:Ljava/lang/String;
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.type:Ljava/lang/Class;
3: aload 0
4: new com.sun.org.glassfish.gmbal.util.GenericConstructor$1
dup
aload 0
invokespecial com.sun.org.glassfish.gmbal.util.GenericConstructor$1.<init>:(Lcom/sun/org/glassfish/gmbal/util/GenericConstructor;)V
5: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast java.lang.reflect.Constructor
putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
6: goto 11
StackMap locals:
StackMap stack: java.lang.Exception
7: astore 2
start local 2 8: ldc "com.sun.org.glassfish.gmbal.util"
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
9: ldc "Failure in getConstructor"
aload 2
10: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 11: StackMap locals:
StackMap stack:
aload 1
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 1
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/org/glassfish/gmbal/util/GenericConstructor<TT;>;
8 11 2 exc Ljava/lang/Exception;
Exception table:
from to target type
2 6 7 Class java.lang.Exception
1 12 13 any
13 14 13 any
public synchronized T create([]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x00a1) ACC_PUBLIC, ACC_SYNCHRONIZED, ACC_VARARGS
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aconst_null
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 14
4: StackMap locals: java.lang.Object java.lang.Object int
StackMap stack:
aload 0
invokevirtual com.sun.org.glassfish.gmbal.util.GenericConstructor.getConstructor:()V
5: aload 0
getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
ifnonnull 7
6: goto 15
7: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.resultType:Ljava/lang/Class;
aload 0
getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
aload 1
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
8: goto 15
9: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 10: aload 0
aconst_null
putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
11: ldc "com.sun.org.glassfish.gmbal.util"
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
12: getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
ldc "Error invoking constructor"
aload 5
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 5 13: iinc 4 1
StackMap locals:
StackMap stack:
14: iload 4
iconst_1
if_icmple 4
end local 4 15: StackMap locals:
StackMap stack:
aload 3
aload 2
monitorexit
16: areturn
end local 3 17: StackMap locals: com.sun.org.glassfish.gmbal.util.GenericConstructor java.lang.Object[] java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
18: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/org/glassfish/gmbal/util/GenericConstructor<TT;>;
0 19 1 args [Ljava/lang/Object;
2 17 3 result TT;
3 15 4 ctr I
10 13 5 exc Ljava/lang/Exception;
Exception table:
from to target type
7 8 9 Class java.lang.Exception
1 16 17 any
17 18 17 any
Signature: ([Ljava/lang/Object;)TT;
MethodParameters:
Name Flags
args
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "GenericConstructor.java"
NestMembers:
com.sun.org.glassfish.gmbal.util.GenericConstructor$1
InnerClasses:
com.sun.org.glassfish.gmbal.util.GenericConstructor$1