public class org.apache.commons.pool2.impl.GenericObjectPool<T> extends org.apache.commons.pool2.impl.BaseGenericObjectPool<T> implements org.apache.commons.pool2.ObjectPool<T>, org.apache.commons.pool2.impl.GenericObjectPoolMXBean, org.apache.commons.pool2.UsageTracking<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.pool2.impl.GenericObjectPool
  super_class: org.apache.commons.pool2.impl.BaseGenericObjectPool
{
  private volatile java.lang.String factoryType;
    descriptor: Ljava/lang/String;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int maxIdle;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int minIdle;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private final java.util.Map<org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper<T>, org.apache.commons.pool2.PooledObject<T>> allObjects;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/apache/commons/pool2/impl/BaseGenericObjectPool$IdentityWrapper<TT;>;Lorg/apache/commons/pool2/PooledObject<TT;>;>;

  private final java.util.concurrent.atomic.AtomicLong createCount;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long makeObjectCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object makeObjectCountLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.commons.pool2.impl.LinkedBlockingDeque<org.apache.commons.pool2.PooledObject<T>> idleObjects;
    descriptor: Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/apache/commons/pool2/impl/LinkedBlockingDeque<Lorg/apache/commons/pool2/PooledObject<TT;>;>;

  private static final java.lang.String ONAME_BASE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.commons.pool2:type=GenericObjectPool,name="

  private volatile org.apache.commons.pool2.impl.AbandonedConfig abandonedConfig;
    descriptor: Lorg/apache/commons/pool2/impl/AbandonedConfig;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  public void <init>(org.apache.commons.pool2.PooledObjectFactory<T>);
    descriptor: (Lorg/apache/commons/pool2/PooledObjectFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // org.apache.commons.pool2.PooledObjectFactory factory
         0: .line 88
            aload 0 /* this */
            aload 1 /* factory */
            new org.apache.commons.pool2.impl.GenericObjectPoolConfig
            dup
            invokespecial org.apache.commons.pool2.impl.GenericObjectPoolConfig.<init>:()V
            invokespecial org.apache.commons.pool2.impl.GenericObjectPool.<init>:(Lorg/apache/commons/pool2/PooledObjectFactory;Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig;)V
         1: .line 89
            return
        end local 1 // org.apache.commons.pool2.PooledObjectFactory factory
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0    2     1  factory  Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;
    Signature: (Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;)V
    MethodParameters:
         Name  Flags
      factory  final

  public void <init>(org.apache.commons.pool2.PooledObjectFactory<T>, org.apache.commons.pool2.impl.GenericObjectPoolConfig<T>);
    descriptor: (Lorg/apache/commons/pool2/PooledObjectFactory;Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // org.apache.commons.pool2.PooledObjectFactory factory
        start local 2 // org.apache.commons.pool2.impl.GenericObjectPoolConfig config
         0: .line 105
            aload 0 /* this */
            aload 2 /* config */
            ldc "org.apache.commons.pool2:type=GenericObjectPool,name="
            aload 2 /* config */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPoolConfig.getJmxNamePrefix:()Ljava/lang/String;
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool.<init>:(Lorg/apache/commons/pool2/impl/BaseObjectPoolConfig;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 1095
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.pool2.impl.GenericObjectPool.factoryType:Ljava/lang/String;
         2: .line 1159
            aload 0 /* this */
            bipush 8
            putfield org.apache.commons.pool2.impl.GenericObjectPool.maxIdle:I
         3: .line 1160
            aload 0 /* this */
            iconst_0
            putfield org.apache.commons.pool2.impl.GenericObjectPool.minIdle:I
         4: .line 1173
            aload 0 /* this */
         5: .line 1174
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
         6: .line 1182
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.commons.pool2.impl.GenericObjectPool.createCount:Ljava/util/concurrent/atomic/AtomicLong;
         7: .line 1183
            aload 0 /* this */
            lconst_0
            putfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
         8: .line 1184
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
         9: .line 1192
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
        10: .line 107
            aload 1 /* factory */
            ifnonnull 13
        11: .line 108
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.jmxUnregister:()V
        12: .line 109
            new java.lang.IllegalArgumentException
            dup
            ldc "factory may not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 111
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool org.apache.commons.pool2.PooledObjectFactory org.apache.commons.pool2.impl.GenericObjectPoolConfig
      StackMap stack:
            aload 0 /* this */
            aload 1 /* factory */
            putfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
        14: .line 113
            aload 0 /* this */
            new org.apache.commons.pool2.impl.LinkedBlockingDeque
            dup
            aload 2 /* config */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPoolConfig.getFairness:()Z
            invokespecial org.apache.commons.pool2.impl.LinkedBlockingDeque.<init>:(Z)V
            putfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
        15: .line 115
            aload 0 /* this */
            aload 2 /* config */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.setConfig:(Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig;)V
        16: .line 116
            return
        end local 2 // org.apache.commons.pool2.impl.GenericObjectPoolConfig config
        end local 1 // org.apache.commons.pool2.PooledObjectFactory factory
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   17     1  factory  Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;
            0   17     2   config  Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig<TT;>;
    Signature: (Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig<TT;>;)V
    MethodParameters:
         Name  Flags
      factory  final
      config   final

  public void <init>(org.apache.commons.pool2.PooledObjectFactory<T>, org.apache.commons.pool2.impl.GenericObjectPoolConfig<T>, org.apache.commons.pool2.impl.AbandonedConfig);
    descriptor: (Lorg/apache/commons/pool2/PooledObjectFactory;Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig;Lorg/apache/commons/pool2/impl/AbandonedConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // org.apache.commons.pool2.PooledObjectFactory factory
        start local 2 // org.apache.commons.pool2.impl.GenericObjectPoolConfig config
        start local 3 // org.apache.commons.pool2.impl.AbandonedConfig abandonedConfig
         0: .line 133
            aload 0 /* this */
            aload 1 /* factory */
            aload 2 /* config */
            invokespecial org.apache.commons.pool2.impl.GenericObjectPool.<init>:(Lorg/apache/commons/pool2/PooledObjectFactory;Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig;)V
         1: .line 134
            aload 0 /* this */
            aload 3 /* abandonedConfig */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.setAbandonedConfig:(Lorg/apache/commons/pool2/impl/AbandonedConfig;)V
         2: .line 135
            return
        end local 3 // org.apache.commons.pool2.impl.AbandonedConfig abandonedConfig
        end local 2 // org.apache.commons.pool2.impl.GenericObjectPoolConfig config
        end local 1 // org.apache.commons.pool2.PooledObjectFactory factory
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0    3     1          factory  Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;
            0    3     2           config  Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig<TT;>;
            0    3     3  abandonedConfig  Lorg/apache/commons/pool2/impl/AbandonedConfig;
    Signature: (Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig<TT;>;Lorg/apache/commons/pool2/impl/AbandonedConfig;)V
    MethodParameters:
                 Name  Flags
      factory          final
      config           final
      abandonedConfig  final

  public int getMaxIdle();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 153
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.maxIdle:I
            ireturn
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;

  public void setMaxIdle(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // int maxIdle
         0: .line 173
            aload 0 /* this */
            iload 1 /* maxIdle */
            putfield org.apache.commons.pool2.impl.GenericObjectPool.maxIdle:I
         1: .line 174
            return
        end local 1 // int maxIdle
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0    2     1  maxIdle  I
    MethodParameters:
         Name  Flags
      maxIdle  final

  public void setMinIdle(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // int minIdle
         0: .line 195
            aload 0 /* this */
            iload 1 /* minIdle */
            putfield org.apache.commons.pool2.impl.GenericObjectPool.minIdle:I
         1: .line 196
            return
        end local 1 // int minIdle
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0    2     1  minIdle  I
    MethodParameters:
         Name  Flags
      minIdle  final

  public int getMinIdle();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 217
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMaxIdle:()I
            istore 1 /* maxIdleSave */
        start local 1 // int maxIdleSave
         1: .line 218
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.minIdle:I
            iload 1 /* maxIdleSave */
            if_icmple 3
         2: .line 219
            iload 1 /* maxIdleSave */
            ireturn
         3: .line 221
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.minIdle:I
            ireturn
        end local 1 // int maxIdleSave
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            1    4     1  maxIdleSave  I

  public boolean isAbandonedConfig();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 232
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;

  public boolean getLogAbandoned();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 245
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            astore 1 /* ac */
        start local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
         1: .line 246
            aload 1 /* ac */
            ifnull 2
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getLogAbandoned:()Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: org.apache.commons.pool2.impl.AbandonedConfig
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            1    3     1    ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;

  public boolean getRemoveAbandonedOnBorrow();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 260
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            astore 1 /* ac */
        start local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
         1: .line 261
            aload 1 /* ac */
            ifnull 2
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedOnBorrow:()Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: org.apache.commons.pool2.impl.AbandonedConfig
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            1    3     1    ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;

  public boolean getRemoveAbandonedOnMaintenance();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 274
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            astore 1 /* ac */
        start local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
         1: .line 275
            aload 1 /* ac */
            ifnull 2
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedOnMaintenance:()Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: org.apache.commons.pool2.impl.AbandonedConfig
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            1    3     1    ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;

  public int getRemoveAbandonedTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 289
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            astore 1 /* ac */
        start local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
         1: .line 290
            aload 1 /* ac */
            ifnull 2
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedTimeout:()I
            goto 3
      StackMap locals: org.apache.commons.pool2.impl.AbandonedConfig
      StackMap stack:
         2: ldc 2147483647
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            1    4     1    ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;

  public void setConfig(org.apache.commons.pool2.impl.GenericObjectPoolConfig<T>);
    descriptor: (Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // org.apache.commons.pool2.impl.GenericObjectPoolConfig conf
         0: .line 302
            aload 0 /* this */
            aload 1 /* conf */
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool.setConfig:(Lorg/apache/commons/pool2/impl/BaseObjectPoolConfig;)V
         1: .line 303
            aload 0 /* this */
            aload 1 /* conf */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPoolConfig.getMaxIdle:()I
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.setMaxIdle:(I)V
         2: .line 304
            aload 0 /* this */
            aload 1 /* conf */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPoolConfig.getMinIdle:()I
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.setMinIdle:(I)V
         3: .line 305
            aload 0 /* this */
            aload 1 /* conf */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPoolConfig.getMaxTotal:()I
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.setMaxTotal:(I)V
         4: .line 306
            return
        end local 1 // org.apache.commons.pool2.impl.GenericObjectPoolConfig conf
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0    5     1  conf  Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig<TT;>;
    Signature: (Lorg/apache/commons/pool2/impl/GenericObjectPoolConfig<TT;>;)V
    MethodParameters:
      Name  Flags
      conf  final

  public void setAbandonedConfig(org.apache.commons.pool2.impl.AbandonedConfig);
    descriptor: (Lorg/apache/commons/pool2/impl/AbandonedConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // org.apache.commons.pool2.impl.AbandonedConfig abandonedConfig
         0: .line 316
            aload 1 /* abandonedConfig */
            ifnonnull 3
         1: .line 317
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
         2: .line 318
            goto 11
         3: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.apache.commons.pool2.impl.AbandonedConfig
            dup
            invokespecial org.apache.commons.pool2.impl.AbandonedConfig.<init>:()V
            putfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
         4: .line 320
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            aload 1 /* abandonedConfig */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getLogAbandoned:()Z
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.setLogAbandoned:(Z)V
         5: .line 321
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            aload 1 /* abandonedConfig */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getLogWriter:()Ljava/io/PrintWriter;
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.setLogWriter:(Ljava/io/PrintWriter;)V
         6: .line 322
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            aload 1 /* abandonedConfig */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedOnBorrow:()Z
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.setRemoveAbandonedOnBorrow:(Z)V
         7: .line 323
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            aload 1 /* abandonedConfig */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedOnMaintenance:()Z
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.setRemoveAbandonedOnMaintenance:(Z)V
         8: .line 324
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            aload 1 /* abandonedConfig */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedTimeout:()I
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.setRemoveAbandonedTimeout:(I)V
         9: .line 325
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            aload 1 /* abandonedConfig */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getUseUsageTracking:()Z
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.setUseUsageTracking:(Z)V
        10: .line 326
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            aload 1 /* abandonedConfig */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRequireFullStackTrace:()Z
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.setRequireFullStackTrace:(Z)V
        11: .line 328
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.commons.pool2.impl.AbandonedConfig abandonedConfig
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   12     1  abandonedConfig  Lorg/apache/commons/pool2/impl/AbandonedConfig;
    MethodParameters:
                 Name  Flags
      abandonedConfig  final

  public org.apache.commons.pool2.PooledObjectFactory<T> getFactory();
    descriptor: ()Lorg/apache/commons/pool2/PooledObjectFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 337
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            areturn
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
    Signature: ()Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;

  public T borrowObject();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 349
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMaxWaitMillis:()J
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.borrowObject:(J)Ljava/lang/Object;
            areturn
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
    Exceptions:
      throws java.lang.Exception
    Signature: ()TT;

  public T borrowObject();
    descriptor: (J)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // long borrowMaxWaitMillis
         0: .line 402
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.assertOpen:()V
         1: .line 404
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            astore 3 /* ac */
        start local 3 // org.apache.commons.pool2.impl.AbandonedConfig ac
         2: .line 405
            aload 3 /* ac */
            ifnull 6
            aload 3 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedOnBorrow:()Z
            ifeq 6
         3: .line 406
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getNumIdle:()I
            iconst_2
            if_icmpge 6
         4: .line 407
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getNumActive:()I
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMaxTotal:()I
            iconst_3
            isub
            if_icmple 6
         5: .line 408
            aload 0 /* this */
            aload 3 /* ac */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.removeAbandoned:(Lorg/apache/commons/pool2/impl/AbandonedConfig;)V
         6: .line 411
      StackMap locals: org.apache.commons.pool2.impl.AbandonedConfig
      StackMap stack:
            aconst_null
            astore 4 /* p */
        start local 4 // org.apache.commons.pool2.PooledObject p
         7: .line 415
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getBlockWhenExhausted:()Z
            istore 5 /* blockWhenExhausted */
        start local 5 // boolean blockWhenExhausted
         8: .line 418
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 7 /* waitTime */
        start local 7 // long waitTime
         9: .line 420
            goto 66
        10: .line 421
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool long org.apache.commons.pool2.impl.AbandonedConfig org.apache.commons.pool2.PooledObject int top long
      StackMap stack:
            iconst_0
            istore 6 /* create */
        start local 6 // boolean create
        11: .line 422
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.pollFirst:()Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 4 /* p */
        12: .line 423
            aload 4 /* p */
            ifnonnull 16
        13: .line 424
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.create:()Lorg/apache/commons/pool2/PooledObject;
            astore 4 /* p */
        14: .line 425
            aload 4 /* p */
            ifnull 16
        15: .line 426
            iconst_1
            istore 6 /* create */
        16: .line 429
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool long org.apache.commons.pool2.impl.AbandonedConfig org.apache.commons.pool2.PooledObject int int long
      StackMap stack:
            iload 5 /* blockWhenExhausted */
            ifeq 28
        17: .line 430
            aload 4 /* p */
            ifnonnull 24
        18: .line 431
            lload 1 /* borrowMaxWaitMillis */
            lconst_0
            lcmp
            ifge 21
        19: .line 432
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.takeFirst:()Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 4 /* p */
        20: .line 433
            goto 24
        21: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            lload 1 /* borrowMaxWaitMillis */
        22: .line 435
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
        23: .line 434
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.pollFirst:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 4 /* p */
        24: .line 438
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnonnull 30
        25: .line 439
            new java.util.NoSuchElementException
            dup
        26: .line 440
            ldc "Timeout waiting for idle object"
        27: .line 439
            invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 443
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnonnull 30
        29: .line 444
            new java.util.NoSuchElementException
            dup
            ldc "Pool exhausted"
            invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 447
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            invokeinterface org.apache.commons.pool2.PooledObject.allocate:()Z
            ifne 32
        31: .line 448
            aconst_null
            astore 4 /* p */
        32: .line 451
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnull 66
        33: .line 453
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 4 /* p */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.activateObject:(Lorg/apache/commons/pool2/PooledObject;)V
        34: .line 454
            goto 46
      StackMap locals:
      StackMap stack: java.lang.Exception
        35: astore 9 /* e */
        start local 9 // java.lang.Exception e
        36: .line 456
            aload 0 /* this */
            aload 4 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        37: .line 457
            goto 39
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool long org.apache.commons.pool2.impl.AbandonedConfig org.apache.commons.pool2.PooledObject int int long java.lang.Exception
      StackMap stack: java.lang.Exception
        38: pop
        39: .line 460
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* p */
        40: .line 461
            iload 6 /* create */
            ifeq 46
        41: .line 462
            new java.util.NoSuchElementException
            dup
        42: .line 463
            ldc "Unable to activate object"
        43: .line 462
            invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
            astore 10 /* nsee */
        start local 10 // java.util.NoSuchElementException nsee
        44: .line 464
            aload 10 /* nsee */
            aload 9 /* e */
            invokevirtual java.util.NoSuchElementException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        45: .line 465
            aload 10 /* nsee */
            athrow
        end local 10 // java.util.NoSuchElementException nsee
        end local 9 // java.lang.Exception e
        46: .line 468
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnull 66
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getTestOnBorrow:()Z
            ifeq 66
        47: .line 469
            iconst_0
            istore 9 /* validate */
        start local 9 // boolean validate
        48: .line 470
            aconst_null
            astore 10 /* validationThrowable */
        start local 10 // java.lang.Throwable validationThrowable
        49: .line 472
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 4 /* p */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.validateObject:(Lorg/apache/commons/pool2/PooledObject;)Z
            istore 9 /* validate */
        50: .line 473
            goto 54
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool long org.apache.commons.pool2.impl.AbandonedConfig org.apache.commons.pool2.PooledObject int int long int java.lang.Throwable
      StackMap stack: java.lang.Throwable
        51: astore 11 /* t */
        start local 11 // java.lang.Throwable t
        52: .line 474
            aload 11 /* t */
            invokestatic org.apache.commons.pool2.PoolUtils.checkRethrow:(Ljava/lang/Throwable;)V
        53: .line 475
            aload 11 /* t */
            astore 10 /* validationThrowable */
        end local 11 // java.lang.Throwable t
        54: .line 477
      StackMap locals:
      StackMap stack:
            iload 9 /* validate */
            ifne 66
        55: .line 479
            aload 0 /* this */
            aload 4 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        56: .line 480
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.destroyedByBorrowValidationCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        57: .line 481
            goto 59
      StackMap locals:
      StackMap stack: java.lang.Exception
        58: pop
        59: .line 484
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* p */
        60: .line 485
            iload 6 /* create */
            ifeq 66
        61: .line 486
            new java.util.NoSuchElementException
            dup
        62: .line 487
            ldc "Unable to validate object"
        63: .line 486
            invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
            astore 11 /* nsee */
        start local 11 // java.util.NoSuchElementException nsee
        64: .line 488
            aload 11 /* nsee */
            aload 10 /* validationThrowable */
            invokevirtual java.util.NoSuchElementException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        65: .line 489
            aload 11 /* nsee */
            athrow
        end local 11 // java.util.NoSuchElementException nsee
        end local 10 // java.lang.Throwable validationThrowable
        end local 9 // boolean validate
        end local 6 // boolean create
        66: .line 420
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool long org.apache.commons.pool2.impl.AbandonedConfig org.apache.commons.pool2.PooledObject int top long
      StackMap stack:
            aload 4 /* p */
            ifnull 10
        67: .line 496
            aload 0 /* this */
            aload 4 /* p */
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 7 /* waitTime */
            lsub
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.updateStatsBorrow:(Lorg/apache/commons/pool2/PooledObject;J)V
        68: .line 498
            aload 4 /* p */
            invokeinterface org.apache.commons.pool2.PooledObject.getObject:()Ljava/lang/Object;
            areturn
        end local 7 // long waitTime
        end local 5 // boolean blockWhenExhausted
        end local 4 // org.apache.commons.pool2.PooledObject p
        end local 3 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 1 // long borrowMaxWaitMillis
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   69     0                 this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   69     1  borrowMaxWaitMillis  J
            2   69     3                   ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;
            7   69     4                    p  Lorg/apache/commons/pool2/PooledObject<TT;>;
            8   69     5   blockWhenExhausted  Z
           11   66     6               create  Z
            9   69     7             waitTime  J
           36   46     9                    e  Ljava/lang/Exception;
           44   46    10                 nsee  Ljava/util/NoSuchElementException;
           48   66     9             validate  Z
           49   66    10  validationThrowable  Ljava/lang/Throwable;
           52   54    11                    t  Ljava/lang/Throwable;
           64   66    11                 nsee  Ljava/util/NoSuchElementException;
      Exception table:
        from    to  target  type
          33    34      35  Class java.lang.Exception
          36    37      38  Class java.lang.Exception
          49    50      51  Class java.lang.Throwable
          55    57      58  Class java.lang.Exception
    Exceptions:
      throws java.lang.Exception
    Signature: (J)TT;
    MethodParameters:
                     Name  Flags
      borrowMaxWaitMillis  final

  public void returnObject();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // java.lang.Object obj
         0: .line 520
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            new org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper
            dup
            aload 1 /* obj */
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 2 /* p */
        start local 2 // org.apache.commons.pool2.PooledObject p
         1: .line 522
            aload 2 /* p */
            ifnonnull 7
         2: .line 523
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.isAbandonedConfig:()Z
            ifne 6
         3: .line 524
            new java.lang.IllegalStateException
            dup
         4: .line 525
            ldc "Returned object not currently part of this pool"
         5: .line 524
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 527
      StackMap locals: org.apache.commons.pool2.PooledObject
      StackMap stack:
            return
         7: .line 530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.markReturningState:(Lorg/apache/commons/pool2/PooledObject;)V
         8: .line 532
            aload 2 /* p */
            invokeinterface org.apache.commons.pool2.PooledObject.getActiveTimeMillis:()J
            lstore 3 /* activeTime */
        start local 3 // long activeTime
         9: .line 534
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getTestOnReturn:()Z
            ifeq 20
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 2 /* p */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.validateObject:(Lorg/apache/commons/pool2/PooledObject;)Z
            ifne 20
        10: .line 536
            aload 0 /* this */
            aload 2 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        11: .line 537
            goto 14
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool java.lang.Object org.apache.commons.pool2.PooledObject long
      StackMap stack: java.lang.Exception
        12: astore 5 /* e */
        start local 5 // java.lang.Exception e
        13: .line 538
            aload 0 /* this */
            aload 5 /* e */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.swallowException:(Ljava/lang/Exception;)V
        end local 5 // java.lang.Exception e
        14: .line 541
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            iconst_0
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.ensureIdle:(IZ)V
        15: .line 542
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Exception
        16: astore 5 /* e */
        start local 5 // java.lang.Exception e
        17: .line 543
            aload 0 /* this */
            aload 5 /* e */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.swallowException:(Ljava/lang/Exception;)V
        end local 5 // java.lang.Exception e
        18: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 3 /* activeTime */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.updateStatsReturn:(J)V
        19: .line 546
            return
        20: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 2 /* p */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.passivateObject:(Lorg/apache/commons/pool2/PooledObject;)V
        21: .line 551
            goto 34
      StackMap locals:
      StackMap stack: java.lang.Exception
        22: astore 5 /* e1 */
        start local 5 // java.lang.Exception e1
        23: .line 552
            aload 0 /* this */
            aload 5 /* e1 */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.swallowException:(Ljava/lang/Exception;)V
        24: .line 554
            aload 0 /* this */
            aload 2 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        25: .line 555
            goto 28
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool java.lang.Object org.apache.commons.pool2.PooledObject long java.lang.Exception
      StackMap stack: java.lang.Exception
        26: astore 6 /* e */
        start local 6 // java.lang.Exception e
        27: .line 556
            aload 0 /* this */
            aload 6 /* e */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.swallowException:(Ljava/lang/Exception;)V
        end local 6 // java.lang.Exception e
        28: .line 559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            iconst_0
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.ensureIdle:(IZ)V
        29: .line 560
            goto 32
      StackMap locals:
      StackMap stack: java.lang.Exception
        30: astore 6 /* e */
        start local 6 // java.lang.Exception e
        31: .line 561
            aload 0 /* this */
            aload 6 /* e */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.swallowException:(Ljava/lang/Exception;)V
        end local 6 // java.lang.Exception e
        32: .line 563
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 3 /* activeTime */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.updateStatsReturn:(J)V
        33: .line 564
            return
        end local 5 // java.lang.Exception e1
        34: .line 567
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            invokeinterface org.apache.commons.pool2.PooledObject.deallocate:()Z
            ifne 38
        35: .line 568
            new java.lang.IllegalStateException
            dup
        36: .line 569
            ldc "Object has already been returned to this pool or is invalid"
        37: .line 568
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        38: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMaxIdle:()I
            istore 5 /* maxIdleSave */
        start local 5 // int maxIdleSave
        39: .line 573
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.isClosed:()Z
            ifne 40
            iload 5 /* maxIdleSave */
            iconst_m1
            if_icmple 45
            iload 5 /* maxIdleSave */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.size:()I
            if_icmpgt 45
        40: .line 575
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        41: .line 576
            goto 51
      StackMap locals:
      StackMap stack: java.lang.Exception
        42: astore 6 /* e */
        start local 6 // java.lang.Exception e
        43: .line 577
            aload 0 /* this */
            aload 6 /* e */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.swallowException:(Ljava/lang/Exception;)V
        end local 6 // java.lang.Exception e
        44: .line 579
            goto 51
        45: .line 580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getLifo:()Z
            ifeq 48
        46: .line 581
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            aload 2 /* p */
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.addFirst:(Ljava/lang/Object;)V
        47: .line 582
            goto 49
        48: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            aload 2 /* p */
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.addLast:(Ljava/lang/Object;)V
        49: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.isClosed:()Z
            ifeq 51
        50: .line 589
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.clear:()V
        51: .line 592
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 3 /* activeTime */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.updateStatsReturn:(J)V
        52: .line 593
            return
        end local 5 // int maxIdleSave
        end local 3 // long activeTime
        end local 2 // org.apache.commons.pool2.PooledObject p
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   53     0         this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   53     1          obj  TT;
            1   53     2            p  Lorg/apache/commons/pool2/PooledObject<TT;>;
            9   53     3   activeTime  J
           13   14     5            e  Ljava/lang/Exception;
           17   18     5            e  Ljava/lang/Exception;
           23   34     5           e1  Ljava/lang/Exception;
           27   28     6            e  Ljava/lang/Exception;
           31   32     6            e  Ljava/lang/Exception;
           39   53     5  maxIdleSave  I
           43   44     6            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.Exception
          14    15      16  Class java.lang.Exception
          20    21      22  Class java.lang.Exception
          24    25      26  Class java.lang.Exception
          28    29      30  Class java.lang.Exception
          40    41      42  Class java.lang.Exception
    Signature: (TT;)V
    MethodParameters:
      Name  Flags
      obj   final

  public void invalidateObject();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // java.lang.Object obj
         0: .line 608
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            new org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper
            dup
            aload 1 /* obj */
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 2 /* p */
        start local 2 // org.apache.commons.pool2.PooledObject p
         1: .line 609
            aload 2 /* p */
            ifnonnull 7
         2: .line 610
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.isAbandonedConfig:()Z
            ifeq 4
         3: .line 611
            return
         4: .line 613
      StackMap locals: org.apache.commons.pool2.PooledObject
      StackMap stack:
            new java.lang.IllegalStateException
            dup
         5: .line 614
            ldc "Invalidated object not currently part of this pool"
         6: .line 613
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 616
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            dup
            astore 3
            monitorenter
         8: .line 617
            aload 2 /* p */
            invokeinterface org.apache.commons.pool2.PooledObject.getState:()Lorg/apache/commons/pool2/PooledObjectState;
            getstatic org.apache.commons.pool2.PooledObjectState.INVALID:Lorg/apache/commons/pool2/PooledObjectState;
            if_acmpeq 10
         9: .line 618
            aload 0 /* this */
            aload 2 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        10: .line 616
      StackMap locals: org.apache.commons.pool2.PooledObject
      StackMap stack:
            aload 3
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            iconst_0
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.ensureIdle:(IZ)V
        15: .line 622
            return
        end local 2 // org.apache.commons.pool2.PooledObject p
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   16     1   obj  TT;
            1   16     2     p  Lorg/apache/commons/pool2/PooledObject<TT;>;
      Exception table:
        from    to  target  type
           8    11      12  any
          12    13      12  any
    Exceptions:
      throws java.lang.Exception
    Signature: (TT;)V
    MethodParameters:
      Name  Flags
      obj   final

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 644
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.poll:()Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 1 /* p */
        start local 1 // org.apache.commons.pool2.PooledObject p
         1: .line 646
            goto 7
         2: .line 648
      StackMap locals: org.apache.commons.pool2.PooledObject
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
         3: .line 649
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: astore 2 /* e */
        start local 2 // java.lang.Exception e
         5: .line 650
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.swallowException:(Ljava/lang/Exception;)V
        end local 2 // java.lang.Exception e
         6: .line 652
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.poll:()Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 1 /* p */
         7: .line 646
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            ifnonnull 2
         8: .line 654
            return
        end local 1 // org.apache.commons.pool2.PooledObject p
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            1    9     1     p  Lorg/apache/commons/pool2/PooledObject<TT;>;
            5    6     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Exception

  public int getNumActive();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 658
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.size:()I
            isub
            ireturn
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;

  public int getNumIdle();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 663
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.size:()I
            ireturn
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 677
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.isClosed:()Z
            ifeq 2
         1: .line 678
            return
         2: .line 681
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.closeLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 682
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.isClosed:()Z
            ifeq 6
         4: .line 683
            aload 1
            monitorexit
         5: return
         6: .line 688
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.stopEvictor:()V
         7: .line 690
            aload 0 /* this */
            iconst_1
            putfield org.apache.commons.pool2.impl.GenericObjectPool.closed:Z
         8: .line 692
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.clear:()V
         9: .line 694
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.jmxUnregister:()V
        10: .line 697
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.interuptTakeWaiters:()V
        11: .line 681
            aload 1
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 699
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
      Exception table:
        from    to  target  type
           3     5      13  any
           6    12      13  any
          13    14      13  any

  public void evict();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 710
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.assertOpen:()V
         1: .line 712
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.size:()I
            ifle 65
         2: .line 714
            aconst_null
            astore 1 /* underTest */
        start local 1 // org.apache.commons.pool2.PooledObject underTest
         3: .line 715
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getEvictionPolicy:()Lorg/apache/commons/pool2/impl/EvictionPolicy;
            astore 2 /* evictionPolicy */
        start local 2 // org.apache.commons.pool2.impl.EvictionPolicy evictionPolicy
         4: .line 717
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.evictionLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         5: .line 718
            new org.apache.commons.pool2.impl.EvictionConfig
            dup
         6: .line 719
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMinEvictableIdleTimeMillis:()J
         7: .line 720
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getSoftMinEvictableIdleTimeMillis:()J
         8: .line 721
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMinIdle:()I
         9: .line 718
            invokespecial org.apache.commons.pool2.impl.EvictionConfig.<init>:(JJI)V
            astore 4 /* evictionConfig */
        start local 4 // org.apache.commons.pool2.impl.EvictionConfig evictionConfig
        10: .line 723
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getTestWhileIdle:()Z
            istore 5 /* testWhileIdle */
        start local 5 // boolean testWhileIdle
        11: .line 725
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        12: aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getNumTests:()I
            istore 7 /* m */
        start local 7 // int m
        13: goto 60
        14: .line 726
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool org.apache.commons.pool2.PooledObject org.apache.commons.pool2.impl.EvictionPolicy java.lang.Object org.apache.commons.pool2.impl.EvictionConfig int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.evictionIterator:Lorg/apache/commons/pool2/impl/BaseGenericObjectPool$EvictionIterator;
            ifnull 15
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.evictionIterator:Lorg/apache/commons/pool2/impl/BaseGenericObjectPool$EvictionIterator;
            invokevirtual org.apache.commons.pool2.impl.BaseGenericObjectPool$EvictionIterator.hasNext:()Z
            ifne 16
        15: .line 727
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.apache.commons.pool2.impl.BaseGenericObjectPool$EvictionIterator
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool$EvictionIterator.<init>:(Lorg/apache/commons/pool2/impl/BaseGenericObjectPool;Ljava/util/Deque;)V
            putfield org.apache.commons.pool2.impl.GenericObjectPool.evictionIterator:Lorg/apache/commons/pool2/impl/BaseGenericObjectPool$EvictionIterator;
        16: .line 729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.evictionIterator:Lorg/apache/commons/pool2/impl/BaseGenericObjectPool$EvictionIterator;
            invokevirtual org.apache.commons.pool2.impl.BaseGenericObjectPool$EvictionIterator.hasNext:()Z
            ifne 19
        17: .line 731
            aload 3
            monitorexit
        18: return
        19: .line 735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.evictionIterator:Lorg/apache/commons/pool2/impl/BaseGenericObjectPool$EvictionIterator;
            invokevirtual org.apache.commons.pool2.impl.BaseGenericObjectPool$EvictionIterator.next:()Lorg/apache/commons/pool2/PooledObject;
            astore 1 /* underTest */
        20: .line 736
            goto 25
      StackMap locals:
      StackMap stack: java.util.NoSuchElementException
        21: pop
        22: .line 739
            iinc 6 /* i */ -1
        23: .line 740
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.pool2.impl.GenericObjectPool.evictionIterator:Lorg/apache/commons/pool2/impl/BaseGenericObjectPool$EvictionIterator;
        24: .line 741
            goto 59
        25: .line 744
      StackMap locals:
      StackMap stack:
            aload 1 /* underTest */
            invokeinterface org.apache.commons.pool2.PooledObject.startEvictionTest:()Z
            ifne 28
        26: .line 747
            iinc 6 /* i */ -1
        27: .line 748
            goto 59
        28: .line 756
      StackMap locals:
      StackMap stack:
            aload 2 /* evictionPolicy */
            aload 4 /* evictionConfig */
            aload 1 /* underTest */
        29: .line 757
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.size:()I
        30: .line 756
            invokeinterface org.apache.commons.pool2.impl.EvictionPolicy.evict:(Lorg/apache/commons/pool2/impl/EvictionConfig;Lorg/apache/commons/pool2/PooledObject;I)Z
            istore 8 /* evict */
        start local 8 // boolean evict
        31: .line 758
            goto 36
        end local 8 // boolean evict
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 9 /* t */
        start local 9 // java.lang.Throwable t
        33: .line 761
            aload 9 /* t */
            invokestatic org.apache.commons.pool2.PoolUtils.checkRethrow:(Ljava/lang/Throwable;)V
        34: .line 762
            aload 0 /* this */
            new java.lang.Exception
            dup
            aload 9 /* t */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/Throwable;)V
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.swallowException:(Ljava/lang/Exception;)V
        35: .line 764
            iconst_0
            istore 8 /* evict */
        end local 9 // java.lang.Throwable t
        start local 8 // boolean evict
        36: .line 767
      StackMap locals: int
      StackMap stack:
            iload 8 /* evict */
            ifeq 40
        37: .line 768
            aload 0 /* this */
            aload 1 /* underTest */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        38: .line 769
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.destroyedByEvictorCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        39: .line 770
            goto 59
        40: .line 771
      StackMap locals:
      StackMap stack:
            iload 5 /* testWhileIdle */
            ifeq 58
        41: .line 772
            iconst_0
            istore 9 /* active */
        start local 9 // boolean active
        42: .line 774
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 1 /* underTest */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.activateObject:(Lorg/apache/commons/pool2/PooledObject;)V
        43: .line 775
            iconst_1
            istore 9 /* active */
        44: .line 776
            goto 48
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool org.apache.commons.pool2.PooledObject org.apache.commons.pool2.impl.EvictionPolicy java.lang.Object org.apache.commons.pool2.impl.EvictionConfig int int int int int
      StackMap stack: java.lang.Exception
        45: pop
        46: .line 777
            aload 0 /* this */
            aload 1 /* underTest */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        47: .line 778
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.destroyedByEvictorCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        48: .line 780
      StackMap locals:
      StackMap stack:
            iload 9 /* active */
            ifeq 58
        49: .line 781
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 1 /* underTest */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.validateObject:(Lorg/apache/commons/pool2/PooledObject;)Z
            ifne 53
        50: .line 782
            aload 0 /* this */
            aload 1 /* underTest */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        51: .line 783
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.destroyedByEvictorCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        52: .line 784
            goto 58
        53: .line 786
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 1 /* underTest */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.passivateObject:(Lorg/apache/commons/pool2/PooledObject;)V
        54: .line 787
            goto 58
      StackMap locals:
      StackMap stack: java.lang.Exception
        55: pop
        56: .line 788
            aload 0 /* this */
            aload 1 /* underTest */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.destroy:(Lorg/apache/commons/pool2/PooledObject;)V
        57: .line 789
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.destroyedByEvictorCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        end local 9 // boolean active
        58: .line 794
      StackMap locals:
      StackMap stack:
            aload 1 /* underTest */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokeinterface org.apache.commons.pool2.PooledObject.endEvictionTest:(Ljava/util/Deque;)Z
            pop
        end local 8 // boolean evict
        59: .line 725
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        60: iload 6 /* i */
            iload 7 /* m */
            if_icmplt 14
        end local 7 // int m
        end local 6 // int i
        end local 5 // boolean testWhileIdle
        end local 4 // org.apache.commons.pool2.impl.EvictionConfig evictionConfig
        61: .line 717
            aload 3
            monitorexit
        62: goto 65
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool org.apache.commons.pool2.PooledObject org.apache.commons.pool2.impl.EvictionPolicy java.lang.Object
      StackMap stack: java.lang.Throwable
        63: aload 3
            monitorexit
        64: athrow
        end local 2 // org.apache.commons.pool2.impl.EvictionPolicy evictionPolicy
        end local 1 // org.apache.commons.pool2.PooledObject underTest
        65: .line 802
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            astore 1 /* ac */
        start local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
        66: .line 803
            aload 1 /* ac */
            ifnull 68
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedOnMaintenance:()Z
            ifeq 68
        67: .line 804
            aload 0 /* this */
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.removeAbandoned:(Lorg/apache/commons/pool2/impl/AbandonedConfig;)V
        68: .line 806
      StackMap locals: org.apache.commons.pool2.impl.AbandonedConfig
      StackMap stack:
            return
        end local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   69     0            this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            3   65     1       underTest  Lorg/apache/commons/pool2/PooledObject<TT;>;
            4   65     2  evictionPolicy  Lorg/apache/commons/pool2/impl/EvictionPolicy<TT;>;
           10   61     4  evictionConfig  Lorg/apache/commons/pool2/impl/EvictionConfig;
           11   61     5   testWhileIdle  Z
           12   61     6               i  I
           13   61     7               m  I
           31   32     8           evict  Z
           36   59     8           evict  Z
           33   36     9               t  Ljava/lang/Throwable;
           42   58     9          active  Z
           66   69     1              ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;
      Exception table:
        from    to  target  type
          19    20      21  Class java.util.NoSuchElementException
          28    31      32  Class java.lang.Throwable
          42    44      45  Class java.lang.Exception
          53    54      55  Class java.lang.Exception
           5    18      63  any
          19    62      63  any
          63    64      63  any
    Exceptions:
      throws java.lang.Exception

  public void preparePool();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 816
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMinIdle:()I
            iconst_1
            if_icmpge 2
         1: .line 817
            return
         2: .line 819
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.ensureMinIdle:()V
         3: .line 820
            return
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
    Exceptions:
      throws java.lang.Exception

  private org.apache.commons.pool2.PooledObject<T> create();
    descriptor: ()Lorg/apache/commons/pool2/PooledObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 834
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMaxTotal:()I
            istore 1 /* localMaxTotal */
        start local 1 // int localMaxTotal
         1: .line 836
            iload 1 /* localMaxTotal */
            ifge 3
         2: .line 837
            ldc 2147483647
            istore 1 /* localMaxTotal */
         3: .line 840
      StackMap locals: int
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 2 /* localStartTimeMillis */
        start local 2 // long localStartTimeMillis
         4: .line 841
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMaxWaitMillis:()J
            lconst_0
            invokestatic java.lang.Math.max:(JJ)J
            lstore 4 /* localMaxWaitTimeMillis */
        start local 4 // long localMaxWaitTimeMillis
         5: .line 848
            aconst_null
            astore 6 /* create */
        start local 6 // java.lang.Boolean create
         6: .line 849
            goto 26
         7: .line 850
      StackMap locals: long long java.lang.Boolean
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
            dup
            astore 7
            monitorenter
         8: .line 851
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.createCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            lstore 8 /* newCreateCount */
        start local 8 // long newCreateCount
         9: .line 852
            lload 8 /* newCreateCount */
            iload 1 /* localMaxTotal */
            i2l
            lcmp
            ifle 16
        10: .line 855
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.createCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
            pop2
        11: .line 856
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
            lconst_0
            lcmp
            ifne 14
        12: .line 860
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            astore 6 /* create */
        13: .line 861
            goto 18
        14: .line 866
      StackMap locals: java.lang.Object long
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
            lload 4 /* localMaxWaitTimeMillis */
            invokevirtual java.lang.Object.wait:(J)V
        15: .line 868
            goto 18
        16: .line 870
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
            lconst_1
            ladd
            putfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
        17: .line 871
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            astore 6 /* create */
        end local 8 // long newCreateCount
        18: .line 850
      StackMap locals:
      StackMap stack:
            aload 7
            monitorexit
        19: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: aload 7
            monitorexit
        21: athrow
        22: .line 876
      StackMap locals:
      StackMap stack:
            aload 6 /* create */
            ifnonnull 26
        23: .line 877
            lload 4 /* localMaxWaitTimeMillis */
            lconst_0
            lcmp
            ifle 26
        24: .line 878
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 2 /* localStartTimeMillis */
            lsub
            lload 4 /* localMaxWaitTimeMillis */
            lcmp
            iflt 26
        25: .line 879
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            astore 6 /* create */
        26: .line 849
      StackMap locals:
      StackMap stack:
            aload 6 /* create */
            ifnull 7
        27: .line 883
            aload 6 /* create */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 29
        28: .line 884
            aconst_null
            areturn
        29: .line 889
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.makeObject:()Lorg/apache/commons/pool2/PooledObject;
            astore 7 /* p */
        start local 7 // org.apache.commons.pool2.PooledObject p
        30: .line 890
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getTestOnCreate:()Z
            ifeq 52
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 7 /* p */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.validateObject:(Lorg/apache/commons/pool2/PooledObject;)Z
            ifne 52
        31: .line 891
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.createCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
            pop2
        32: .line 898
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        33: .line 899
            aload 0 /* this */
            dup
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
            lconst_1
            lsub
            putfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
        34: .line 900
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        35: .line 898
            aload 10
            monitorexit
        36: goto 39
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool int long long java.lang.Boolean org.apache.commons.pool2.PooledObject top top java.lang.Object
      StackMap stack: java.lang.Throwable
        37: aload 10
            monitorexit
        38: athrow
        39: .line 892
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool int long long java.lang.Boolean org.apache.commons.pool2.PooledObject
      StackMap stack:
            aconst_null
            areturn
        end local 7 // org.apache.commons.pool2.PooledObject p
        40: .line 894
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool int long long java.lang.Boolean
      StackMap stack: java.lang.Throwable
            astore 8 /* e */
        start local 8 // java.lang.Throwable e
        41: .line 895
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.createCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
            pop2
        42: .line 896
            aload 8 /* e */
            athrow
        end local 8 // java.lang.Throwable e
        43: .line 897
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        44: .line 898
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        45: .line 899
            aload 0 /* this */
            dup
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
            lconst_1
            lsub
            putfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
        46: .line 900
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        47: .line 898
            aload 10
            monitorexit
        48: goto 51
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool int long long java.lang.Boolean top top java.lang.Throwable java.lang.Object
      StackMap stack: java.lang.Throwable
        49: aload 10
            monitorexit
        50: athrow
        51: .line 902
      StackMap locals:
      StackMap stack:
            aload 9
            athrow
        start local 7 // org.apache.commons.pool2.PooledObject p
        52: .line 898
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool int long long java.lang.Boolean org.apache.commons.pool2.PooledObject
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        53: .line 899
            aload 0 /* this */
            dup
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
            lconst_1
            lsub
            putfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCount:J
        54: .line 900
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.makeObjectCountLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        55: .line 898
            aload 10
            monitorexit
        56: goto 59
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool int long long java.lang.Boolean org.apache.commons.pool2.PooledObject top top java.lang.Object
      StackMap stack: java.lang.Throwable
        57: aload 10
            monitorexit
        58: athrow
        59: .line 904
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool int long long java.lang.Boolean org.apache.commons.pool2.PooledObject
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            astore 8 /* ac */
        start local 8 // org.apache.commons.pool2.impl.AbandonedConfig ac
        60: .line 905
            aload 8 /* ac */
            ifnull 63
            aload 8 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getLogAbandoned:()Z
            ifeq 63
        61: .line 906
            aload 7 /* p */
            iconst_1
            invokeinterface org.apache.commons.pool2.PooledObject.setLogAbandoned:(Z)V
        62: .line 907
            aload 7 /* p */
            aload 8 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRequireFullStackTrace:()Z
            invokeinterface org.apache.commons.pool2.PooledObject.setRequireFullStackTrace:(Z)V
        63: .line 910
      StackMap locals: org.apache.commons.pool2.impl.AbandonedConfig
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.createdCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        64: .line 911
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            new org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper
            dup
            aload 7 /* p */
            invokeinterface org.apache.commons.pool2.PooledObject.getObject:()Ljava/lang/Object;
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper.<init>:(Ljava/lang/Object;)V
            aload 7 /* p */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        65: .line 912
            aload 7 /* p */
            areturn
        end local 8 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 7 // org.apache.commons.pool2.PooledObject p
        end local 6 // java.lang.Boolean create
        end local 4 // long localMaxWaitTimeMillis
        end local 2 // long localStartTimeMillis
        end local 1 // int localMaxTotal
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   66     0                    this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            1   66     1           localMaxTotal  I
            4   66     2    localStartTimeMillis  J
            5   66     4  localMaxWaitTimeMillis  J
            6   66     6                  create  Ljava/lang/Boolean;
            9   18     8          newCreateCount  J
           30   40     7                       p  Lorg/apache/commons/pool2/PooledObject<TT;>;
           52   66     7                       p  Lorg/apache/commons/pool2/PooledObject<TT;>;
           41   43     8                       e  Ljava/lang/Throwable;
           60   66     8                      ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;
      Exception table:
        from    to  target  type
           8    19      20  any
          20    21      20  any
          33    36      37  any
          37    38      37  any
          29    32      40  Class java.lang.Throwable
          29    32      43  any
          40    43      43  any
          45    48      49  any
          49    50      49  any
          53    56      57  any
          57    58      57  any
    Exceptions:
      throws java.lang.Exception
    Signature: ()Lorg/apache/commons/pool2/PooledObject<TT;>;

  private void destroy(org.apache.commons.pool2.PooledObject<T>);
    descriptor: (Lorg/apache/commons/pool2/PooledObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // org.apache.commons.pool2.PooledObject toDestroy
         0: .line 924
            aload 1 /* toDestroy */
            invokeinterface org.apache.commons.pool2.PooledObject.invalidate:()V
         1: .line 925
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            aload 1 /* toDestroy */
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 926
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            new org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper
            dup
            aload 1 /* toDestroy */
            invokeinterface org.apache.commons.pool2.PooledObject.getObject:()Ljava/lang/Object;
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 928
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 1 /* toDestroy */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.destroyObject:(Lorg/apache/commons/pool2/PooledObject;)V
         4: .line 929
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 930
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.destroyedCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
         7: .line 931
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.createCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
            pop2
         8: .line 932
            aload 2
            athrow
         9: .line 930
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.destroyedCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        10: .line 931
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.createCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
            pop2
        11: .line 934
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.isEmpty:()Z
            ifeq 14
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.hasTakeWaiters:()Z
            ifeq 14
        12: .line 939
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.create:()Lorg/apache/commons/pool2/PooledObject;
            astore 2 /* freshPooled */
        start local 2 // org.apache.commons.pool2.PooledObject freshPooled
        13: .line 940
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            aload 2 /* freshPooled */
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.put:(Ljava/lang/Object;)V
        end local 2 // org.apache.commons.pool2.PooledObject freshPooled
        14: .line 942
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.commons.pool2.PooledObject toDestroy
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   15     1    toDestroy  Lorg/apache/commons/pool2/PooledObject<TT;>;
           13   14     2  freshPooled  Lorg/apache/commons/pool2/PooledObject<TT;>;
      Exception table:
        from    to  target  type
           3     5       5  any
    Exceptions:
      throws java.lang.Exception
    Signature: (Lorg/apache/commons/pool2/PooledObject<TT;>;)V
    MethodParameters:
           Name  Flags
      toDestroy  final

  void ensureMinIdle();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 946
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getMinIdle:()I
            iconst_1
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.ensureIdle:(IZ)V
         1: .line 947
            return
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
    Exceptions:
      throws java.lang.Exception

  private void ensureIdle(int, boolean);
    descriptor: (IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // int idleCount
        start local 2 // boolean always
         0: .line 963
            iload 1 /* idleCount */
            iconst_1
            if_icmplt 1
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.isClosed:()Z
            ifne 1
            iload 2 /* always */
            ifne 9
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.hasTakeWaiters:()Z
            ifne 9
         1: .line 964
      StackMap locals:
      StackMap stack:
            return
         2: .line 968
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.create:()Lorg/apache/commons/pool2/PooledObject;
            astore 3 /* p */
        start local 3 // org.apache.commons.pool2.PooledObject p
         3: .line 969
            aload 3 /* p */
            ifnonnull 5
         4: .line 972
            goto 10
         5: .line 974
      StackMap locals: org.apache.commons.pool2.PooledObject
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getLifo:()Z
            ifeq 8
         6: .line 975
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            aload 3 /* p */
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.addFirst:(Ljava/lang/Object;)V
         7: .line 976
            goto 9
         8: .line 977
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            aload 3 /* p */
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.addLast:(Ljava/lang/Object;)V
        end local 3 // org.apache.commons.pool2.PooledObject p
         9: .line 967
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.size:()I
            iload 1 /* idleCount */
            if_icmplt 2
        10: .line 980
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.isClosed:()Z
            ifeq 12
        11: .line 984
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.clear:()V
        12: .line 986
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean always
        end local 1 // int idleCount
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   13     1  idleCount  I
            0   13     2     always  Z
            3    9     3          p  Lorg/apache/commons/pool2/PooledObject<TT;>;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      idleCount  final
      always     final

  public void addObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 997
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.assertOpen:()V
         1: .line 998
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            ifnonnull 5
         2: .line 999
            new java.lang.IllegalStateException
            dup
         3: .line 1000
            ldc "Cannot add objects without a factory."
         4: .line 999
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1002
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.create:()Lorg/apache/commons/pool2/PooledObject;
            astore 1 /* p */
        start local 1 // org.apache.commons.pool2.PooledObject p
         6: .line 1003
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.addIdleObject:(Lorg/apache/commons/pool2/PooledObject;)V
         7: .line 1004
            return
        end local 1 // org.apache.commons.pool2.PooledObject p
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            6    8     1     p  Lorg/apache/commons/pool2/PooledObject<TT;>;
    Exceptions:
      throws java.lang.Exception

  private void addIdleObject(org.apache.commons.pool2.PooledObject<T>);
    descriptor: (Lorg/apache/commons/pool2/PooledObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // org.apache.commons.pool2.PooledObject p
         0: .line 1016
            aload 1 /* p */
            ifnull 6
         1: .line 1017
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            aload 1 /* p */
            invokeinterface org.apache.commons.pool2.PooledObjectFactory.passivateObject:(Lorg/apache/commons/pool2/PooledObject;)V
         2: .line 1018
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getLifo:()Z
            ifeq 5
         3: .line 1019
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            aload 1 /* p */
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.addFirst:(Ljava/lang/Object;)V
         4: .line 1020
            goto 6
         5: .line 1021
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            aload 1 /* p */
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.addLast:(Ljava/lang/Object;)V
         6: .line 1024
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.commons.pool2.PooledObject p
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0    7     1     p  Lorg/apache/commons/pool2/PooledObject<TT;>;
    Exceptions:
      throws java.lang.Exception
    Signature: (Lorg/apache/commons/pool2/PooledObject<TT;>;)V
    MethodParameters:
      Name  Flags
      p     final

  private int getNumTests();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 1033
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getNumTestsPerEvictionRun:()I
            istore 1 /* numTestsPerEvictionRun */
        start local 1 // int numTestsPerEvictionRun
         1: .line 1034
            iload 1 /* numTestsPerEvictionRun */
            iflt 3
         2: .line 1035
            iload 1 /* numTestsPerEvictionRun */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.size:()I
            invokestatic java.lang.Math.min:(II)I
            ireturn
         3: .line 1037
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.size:()I
            i2d
         4: .line 1038
            iload 1 /* numTestsPerEvictionRun */
            i2d
            invokestatic java.lang.Math.abs:(D)D
         5: .line 1037
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            ireturn
        end local 1 // int numTestsPerEvictionRun
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    6     0                    this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            1    6     1  numTestsPerEvictionRun  I

  private void removeAbandoned(org.apache.commons.pool2.impl.AbandonedConfig);
    descriptor: (Lorg/apache/commons/pool2/impl/AbandonedConfig;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
         0: .line 1049
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 2 /* now */
        start local 2 // long now
         1: .line 1051
            lload 2 /* now */
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getRemoveAbandonedTimeout:()I
            i2l
            ldc 1000
            lmul
            lsub
         2: .line 1050
            lstore 4 /* timeout */
        start local 4 // long timeout
         3: .line 1052
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* remove */
        start local 6 // java.util.ArrayList remove
         4: .line 1053
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7 /* it */
        start local 7 // java.util.Iterator it
         5: .line 1054
            goto 16
         6: .line 1055
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool org.apache.commons.pool2.impl.AbandonedConfig long long java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 8 /* pooledObject */
        start local 8 // org.apache.commons.pool2.PooledObject pooledObject
         7: .line 1056
            aload 8 /* pooledObject */
            dup
            astore 9
            monitorenter
         8: .line 1057
            aload 8 /* pooledObject */
            invokeinterface org.apache.commons.pool2.PooledObject.getState:()Lorg/apache/commons/pool2/PooledObjectState;
            getstatic org.apache.commons.pool2.PooledObjectState.ALLOCATED:Lorg/apache/commons/pool2/PooledObjectState;
            if_acmpne 12
         9: .line 1058
            aload 8 /* pooledObject */
            invokeinterface org.apache.commons.pool2.PooledObject.getLastUsedTime:()J
            lload 4 /* timeout */
            lcmp
            ifgt 12
        10: .line 1059
            aload 8 /* pooledObject */
            invokeinterface org.apache.commons.pool2.PooledObject.markAbandoned:()V
        11: .line 1060
            aload 6 /* remove */
            aload 8 /* pooledObject */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 1056
      StackMap locals: org.apache.commons.pool2.PooledObject org.apache.commons.pool2.PooledObject
      StackMap stack:
            aload 9
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 9
            monitorexit
        15: athrow
        end local 8 // org.apache.commons.pool2.PooledObject pooledObject
        16: .line 1054
      StackMap locals:
      StackMap stack:
            aload 7 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        17: .line 1066
            aload 6 /* remove */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8 /* itr */
        start local 8 // java.util.Iterator itr
        18: .line 1067
            goto 26
        19: .line 1068
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 8 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 9 /* pooledObject */
        start local 9 // org.apache.commons.pool2.PooledObject pooledObject
        20: .line 1069
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getLogAbandoned:()Z
            ifeq 22
        21: .line 1070
            aload 9 /* pooledObject */
            aload 1 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getLogWriter:()Ljava/io/PrintWriter;
            invokeinterface org.apache.commons.pool2.PooledObject.printStackTrace:(Ljava/io/PrintWriter;)V
        22: .line 1073
      StackMap locals: org.apache.commons.pool2.PooledObject
      StackMap stack:
            aload 0 /* this */
            aload 9 /* pooledObject */
            invokeinterface org.apache.commons.pool2.PooledObject.getObject:()Ljava/lang/Object;
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.invalidateObject:(Ljava/lang/Object;)V
        23: .line 1074
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Exception
        24: astore 10 /* e */
        start local 10 // java.lang.Exception e
        25: .line 1075
            aload 10 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 10 // java.lang.Exception e
        end local 9 // org.apache.commons.pool2.PooledObject pooledObject
        26: .line 1067
      StackMap locals:
      StackMap stack:
            aload 8 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        27: .line 1078
            return
        end local 8 // java.util.Iterator itr
        end local 7 // java.util.Iterator it
        end local 6 // java.util.ArrayList remove
        end local 4 // long timeout
        end local 2 // long now
        end local 1 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   28     1            ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;
            1   28     2           now  J
            3   28     4       timeout  J
            4   28     6        remove  Ljava/util/ArrayList<Lorg/apache/commons/pool2/PooledObject<TT;>;>;
            5   28     7            it  Ljava/util/Iterator<Lorg/apache/commons/pool2/PooledObject<TT;>;>;
            7   16     8  pooledObject  Lorg/apache/commons/pool2/PooledObject<TT;>;
           18   28     8           itr  Ljava/util/Iterator<Lorg/apache/commons/pool2/PooledObject<TT;>;>;
           20   26     9  pooledObject  Lorg/apache/commons/pool2/PooledObject<TT;>;
           25   26    10             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    13      14  any
          14    15      14  any
          22    23      24  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      ac    final

  public void use();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // java.lang.Object pooledObject
         0: .line 1085
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            astore 2 /* ac */
        start local 2 // org.apache.commons.pool2.impl.AbandonedConfig ac
         1: .line 1086
            aload 2 /* ac */
            ifnull 4
            aload 2 /* ac */
            invokevirtual org.apache.commons.pool2.impl.AbandonedConfig.getUseUsageTracking:()Z
            ifeq 4
         2: .line 1087
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            new org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper
            dup
            aload 1 /* pooledObject */
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 3 /* wrapper */
        start local 3 // org.apache.commons.pool2.PooledObject wrapper
         3: .line 1088
            aload 3 /* wrapper */
            invokeinterface org.apache.commons.pool2.PooledObject.use:()V
        end local 3 // org.apache.commons.pool2.PooledObject wrapper
         4: .line 1090
      StackMap locals: org.apache.commons.pool2.impl.AbandonedConfig
      StackMap stack:
            return
        end local 2 // org.apache.commons.pool2.impl.AbandonedConfig ac
        end local 1 // java.lang.Object pooledObject
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0    5     1  pooledObject  TT;
            1    5     2            ac  Lorg/apache/commons/pool2/impl/AbandonedConfig;
            3    4     3       wrapper  Lorg/apache/commons/pool2/PooledObject<TT;>;
    Signature: (TT;)V
    MethodParameters:
              Name  Flags
      pooledObject  final

  public int getNumWaiters();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 1107
            aload 0 /* this */
            invokevirtual org.apache.commons.pool2.impl.GenericObjectPool.getBlockWhenExhausted:()Z
            ifeq 2
         1: .line 1108
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual org.apache.commons.pool2.impl.LinkedBlockingDeque.getTakeQueueLength:()I
            ireturn
         2: .line 1110
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;

  public java.lang.String getFactoryType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 1122
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factoryType:Ljava/lang/String;
            ifnonnull 9
         1: .line 1123
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* result */
        start local 1 // java.lang.StringBuilder result
         2: .line 1124
            aload 1 /* result */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 1125
            aload 1 /* result */
            bipush 60
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 1127
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.pool2.impl.PoolImplUtils.getFactoryType:(Ljava/lang/Class;)Ljava/lang/Class;
         5: .line 1126
            astore 2 /* pooledObjectType */
        start local 2 // java.lang.Class pooledObjectType
         6: .line 1128
            aload 1 /* result */
            aload 2 /* pooledObjectType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 1129
            aload 1 /* result */
            bipush 62
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 1130
            aload 0 /* this */
            aload 1 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.apache.commons.pool2.impl.GenericObjectPool.factoryType:Ljava/lang/String;
        end local 2 // java.lang.Class pooledObjectType
        end local 1 // java.lang.StringBuilder result
         9: .line 1132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factoryType:Ljava/lang/String;
            areturn
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            2    9     1            result  Ljava/lang/StringBuilder;
            6    9     2  pooledObjectType  Ljava/lang/Class<*>;

  public java.util.Set<org.apache.commons.pool2.impl.DefaultPooledObjectInfo> listAllObjects();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
         0: .line 1150
            new java.util.HashSet
            dup
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.HashSet.<init>:(I)V
         1: .line 1149
            astore 1 /* result */
        start local 1 // java.util.Set result
         2: .line 1151
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.apache.commons.pool2.impl.GenericObjectPool java.util.Set top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.commons.pool2.PooledObject
            astore 2 /* p */
        start local 2 // org.apache.commons.pool2.PooledObject p
         4: .line 1152
            aload 1 /* result */
            new org.apache.commons.pool2.impl.DefaultPooledObjectInfo
            dup
            aload 2 /* p */
            invokespecial org.apache.commons.pool2.impl.DefaultPooledObjectInfo.<init>:(Lorg/apache/commons/pool2/PooledObject;)V
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.apache.commons.pool2.PooledObject p
         5: .line 1151
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 1154
            aload 1 /* result */
            areturn
        end local 1 // java.util.Set result
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            2    7     1  result  Ljava/util/Set<Lorg/apache/commons/pool2/impl/DefaultPooledObjectInfo;>;
            4    5     2       p  Lorg/apache/commons/pool2/PooledObject<TT;>;
    Signature: ()Ljava/util/Set<Lorg/apache/commons/pool2/impl/DefaultPooledObjectInfo;>;

  protected void toStringAppendFields(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
        start local 1 // java.lang.StringBuilder builder
         0: .line 1196
            aload 0 /* this */
            aload 1 /* builder */
            invokespecial org.apache.commons.pool2.impl.BaseGenericObjectPool.toStringAppendFields:(Ljava/lang/StringBuilder;)V
         1: .line 1197
            aload 1 /* builder */
            ldc ", factoryType="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 1198
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factoryType:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 1199
            aload 1 /* builder */
            ldc ", maxIdle="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 1200
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.maxIdle:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         5: .line 1201
            aload 1 /* builder */
            ldc ", minIdle="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 1202
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.minIdle:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         7: .line 1203
            aload 1 /* builder */
            ldc ", factory="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 1204
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.factory:Lorg/apache/commons/pool2/PooledObjectFactory;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         9: .line 1205
            aload 1 /* builder */
            ldc ", allObjects="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 1206
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.allObjects:Ljava/util/Map;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        11: .line 1207
            aload 1 /* builder */
            ldc ", createCount="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 1208
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.createCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        13: .line 1209
            aload 1 /* builder */
            ldc ", idleObjects="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 1210
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.idleObjects:Lorg/apache/commons/pool2/impl/LinkedBlockingDeque;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        15: .line 1211
            aload 1 /* builder */
            ldc ", abandonedConfig="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 1212
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.apache.commons.pool2.impl.GenericObjectPool.abandonedConfig:Lorg/apache/commons/pool2/impl/AbandonedConfig;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        17: .line 1213
            return
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.apache.commons.pool2.impl.GenericObjectPool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/apache/commons/pool2/impl/GenericObjectPool<TT;>;
            0   18     1  builder  Ljava/lang/StringBuilder;
    MethodParameters:
         Name  Flags
      builder  final
}
Signature: <T:Ljava/lang/Object;>Lorg/apache/commons/pool2/impl/BaseGenericObjectPool<TT;>;Lorg/apache/commons/pool2/ObjectPool<TT;>;Lorg/apache/commons/pool2/impl/GenericObjectPoolMXBean;Lorg/apache/commons/pool2/UsageTracking<TT;>;
SourceFile: "GenericObjectPool.java"
InnerClasses:
  EvictionIterator = org.apache.commons.pool2.impl.BaseGenericObjectPool$EvictionIterator of org.apache.commons.pool2.impl.BaseGenericObjectPool
  IdentityWrapper = org.apache.commons.pool2.impl.BaseGenericObjectPool$IdentityWrapper of org.apache.commons.pool2.impl.BaseGenericObjectPool