class org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory<T> implements org.apache.commons.pool.PoolableObjectFactory<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory
  super_class: java.lang.Object
{
  private final java.lang.Object lock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.commons.pool.PoolableObjectFactory<T> factory;
    descriptor: Lorg/apache/commons/pool/PoolableObjectFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/apache/commons/pool/PoolableObjectFactory<TT;>;

  void <init>(org.apache.commons.pool.PoolableObjectFactory<T>);
    descriptor: (Lorg/apache/commons/pool/PoolableObjectFactory;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
        start local 1 // org.apache.commons.pool.PoolableObjectFactory factory
         0: .line 1854
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1855
            aload 1 /* factory */
            ifnonnull 3
         2: .line 1856
            new java.lang.IllegalArgumentException
            dup
            ldc "factory must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1858
      StackMap locals: org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory org.apache.commons.pool.PoolableObjectFactory
      StackMap stack:
            aload 0 /* this */
            aload 1 /* factory */
            putfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.factory:Lorg/apache/commons/pool/PoolableObjectFactory;
         4: .line 1859
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.lock:Ljava/lang/Object;
         5: .line 1860
            return
        end local 1 // org.apache.commons.pool.PoolableObjectFactory factory
        end local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/apache/commons/pool/PoolUtils$SynchronizedPoolableObjectFactory<TT;>;
            0    6     1  factory  Lorg/apache/commons/pool/PoolableObjectFactory<TT;>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Lorg/apache/commons/pool/PoolableObjectFactory<TT;>;)V
    MethodParameters:
         Name  Flags
      factory  final

  public T makeObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
         0: .line 1866
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1867
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.factory:Lorg/apache/commons/pool/PoolableObjectFactory;
            invokeinterface org.apache.commons.pool.PoolableObjectFactory.makeObject:()Ljava/lang/Object;
            aload 1
            monitorexit
         2: areturn
         3: .line 1866
      StackMap locals: org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/pool/PoolUtils$SynchronizedPoolableObjectFactory<TT;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Exceptions:
      throws java.lang.Exception
    Signature: ()TT;

  public void destroyObject();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
        start local 1 // java.lang.Object obj
         0: .line 1875
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1876
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.factory:Lorg/apache/commons/pool/PoolableObjectFactory;
            aload 1 /* obj */
            invokeinterface org.apache.commons.pool.PoolableObjectFactory.destroyObject:(Ljava/lang/Object;)V
         2: .line 1875
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 1878
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/commons/pool/PoolUtils$SynchronizedPoolableObjectFactory<TT;>;
            0    7     1   obj  TT;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Exceptions:
      throws java.lang.Exception
    Signature: (TT;)V
    MethodParameters:
      Name  Flags
      obj   final

  public boolean validateObject();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
        start local 1 // java.lang.Object obj
         0: .line 1884
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1885
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.factory:Lorg/apache/commons/pool/PoolableObjectFactory;
            aload 1 /* obj */
            invokeinterface org.apache.commons.pool.PoolableObjectFactory.validateObject:(Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
         3: .line 1884
      StackMap locals: org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/pool/PoolUtils$SynchronizedPoolableObjectFactory<TT;>;
            0    5     1   obj  TT;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: (TT;)Z
    MethodParameters:
      Name  Flags
      obj   final

  public void activateObject();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
        start local 1 // java.lang.Object obj
         0: .line 1893
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1894
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.factory:Lorg/apache/commons/pool/PoolableObjectFactory;
            aload 1 /* obj */
            invokeinterface org.apache.commons.pool.PoolableObjectFactory.activateObject:(Ljava/lang/Object;)V
         2: .line 1893
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 1896
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/commons/pool/PoolUtils$SynchronizedPoolableObjectFactory<TT;>;
            0    7     1   obj  TT;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Exceptions:
      throws java.lang.Exception
    Signature: (TT;)V
    MethodParameters:
      Name  Flags
      obj   final

  public void passivateObject();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
        start local 1 // java.lang.Object obj
         0: .line 1902
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1903
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.factory:Lorg/apache/commons/pool/PoolableObjectFactory;
            aload 1 /* obj */
            invokeinterface org.apache.commons.pool.PoolableObjectFactory.passivateObject:(Ljava/lang/Object;)V
         2: .line 1902
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 1905
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/commons/pool/PoolUtils$SynchronizedPoolableObjectFactory<TT;>;
            0    7     1   obj  TT;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Exceptions:
      throws java.lang.Exception
    Signature: (TT;)V
    MethodParameters:
      Name  Flags
      obj   final

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
         0: .line 1912
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuffer sb
         1: .line 1913
            aload 1 /* sb */
            ldc "SynchronizedPoolableObjectFactory"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 1914
            aload 1 /* sb */
            ldc "{factory="
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            aload 0 /* this */
            getfield org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory.factory:Lorg/apache/commons/pool/PoolableObjectFactory;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/Object;)Ljava/lang/StringBuffer;
            pop
         3: .line 1915
            aload 1 /* sb */
            bipush 125
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         4: .line 1916
            aload 1 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer sb
        end local 0 // org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/pool/PoolUtils$SynchronizedPoolableObjectFactory<TT;>;
            1    5     1    sb  Ljava/lang/StringBuffer;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/apache/commons/pool/PoolableObjectFactory<TT;>;
SourceFile: "PoolUtils.java"
NestHost: org.apache.commons.pool.PoolUtils
InnerClasses:
  private SynchronizedPoolableObjectFactory = org.apache.commons.pool.PoolUtils$SynchronizedPoolableObjectFactory of org.apache.commons.pool.PoolUtils