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 // com.sun.org.glassfish.gmbal.util.GenericConstructor this
        start local 1 // java.lang.Class type
        start local 2 // java.lang.String className
        start local 3 // java.lang.Class[] signature
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.lock:Ljava/lang/Object;
         2: .line 65
            aload 0 /* this */
            aload 1 /* type */
            putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.resultType:Ljava/lang/Class;
         3: .line 66
            aload 0 /* this */
            aload 2 /* className */
            putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.typeName:Ljava/lang/String;
         4: .line 67
            aload 0 /* this */
            aload 3 /* signature */
            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: .line 68
            return
        end local 3 // java.lang.Class[] signature
        end local 2 // java.lang.String className
        end local 1 // java.lang.Class type
        end local 0 // com.sun.org.glassfish.gmbal.util.GenericConstructor this
      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 // com.sun.org.glassfish.gmbal.util.GenericConstructor this
         0: .line 72
            aload 0 /* this */
            getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 73
            aload 0 /* this */
            getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.type:Ljava/lang/Class;
            ifnull 2
            aload 0 /* this */
            getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
            ifnonnull 11
         2: .line 75
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            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: .line 76
            aload 0 /* this */
         4: .line 77
            new com.sun.org.glassfish.gmbal.util.GenericConstructor$1
            dup
            aload 0 /* this */
            invokespecial com.sun.org.glassfish.gmbal.util.GenericConstructor$1.<init>:(Lcom/sun/org/glassfish/gmbal/util/GenericConstructor;)V
         5: .line 76
            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: .line 84
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Exception
         7: astore 2 /* exc */
        start local 2 // java.lang.Exception exc
         8: .line 86
            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: .line 87
            ldc "Failure in getConstructor"
            aload 2 /* exc */
        10: .line 86
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Exception exc
        11: .line 72
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 91
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.org.glassfish.gmbal.util.GenericConstructor this
      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 // com.sun.org.glassfish.gmbal.util.GenericConstructor this
        start local 1 // java.lang.Object[] args
         0: .line 103
            aload 0 /* this */
            getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 104
            aconst_null
            astore 3 /* result */
        start local 3 // java.lang.Object result
         2: .line 106
            iconst_0
            istore 4 /* ctr */
        start local 4 // int ctr
         3: goto 14
         4: .line 107
      StackMap locals: java.lang.Object java.lang.Object int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.org.glassfish.gmbal.util.GenericConstructor.getConstructor:()V
         5: .line 108
            aload 0 /* this */
            getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
            ifnonnull 7
         6: .line 109
            goto 15
         7: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.resultType:Ljava/lang/Class;
            aload 0 /* this */
            getfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
            aload 1 /* args */
            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 /* result */
         8: .line 114
            goto 15
         9: .line 115
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* exc */
        start local 5 // java.lang.Exception exc
        10: .line 118
            aload 0 /* this */
            aconst_null
            putfield com.sun.org.glassfish.gmbal.util.GenericConstructor.constructor:Ljava/lang/reflect/Constructor;
        11: .line 119
            ldc "com.sun.org.glassfish.gmbal.util"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
        12: .line 120
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "Error invoking constructor"
            aload 5 /* exc */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Exception exc
        13: .line 106
            iinc 4 /* ctr */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* ctr */
            iconst_1
            if_icmple 4
        end local 4 // int ctr
        15: .line 124
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            aload 2
            monitorexit
        16: areturn
        end local 3 // java.lang.Object result
        17: .line 103
      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 // java.lang.Object[] args
        end local 0 // com.sun.org.glassfish.gmbal.util.GenericConstructor this
      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