public final class org.apache.commons.pool2.PoolUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.commons.pool2.PoolUtils
  super_class: java.lang.Object
{
  private static final java.lang.String MSG_FACTOR_NEGATIVE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "factor must be positive."

  private static final java.lang.String MSG_MIN_IDLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "minIdle must be non-negative."

  private static final java.lang.String MSG_NULL_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "key must not be null."

  private static final java.lang.String MSG_NULL_KEYED_POOL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "keyedPool must not be null."

  private static final java.lang.String MSG_NULL_KEYS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "keys must not be null."

  private static final java.lang.String MSG_NULL_POOL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "pool must not be null."

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.PoolUtils this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            return
        end local 0 // org.apache.commons.pool2.PoolUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/pool2/PoolUtils;

  public static void checkRethrow(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 77
            aload 0 /* t */
            instanceof java.lang.ThreadDeath
            ifeq 2
         1: .line 78
            aload 0 /* t */
            checkcast java.lang.ThreadDeath
            athrow
         2: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            instanceof java.lang.VirtualMachineError
            ifeq 4
         3: .line 81
            aload 0 /* t */
            checkcast java.lang.VirtualMachineError
            athrow
         4: .line 84
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     final

  public static <T> java.util.TimerTask checkMinIdle(org.apache.commons.pool2.ObjectPool<T>, int, long);
    descriptor: (Lorg/apache/commons/pool2/ObjectPool;IJ)Ljava/util/TimerTask;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.apache.commons.pool2.ObjectPool pool
        start local 1 // int minIdle
        start local 2 // long period
         0: .line 110
            aload 0 /* pool */
            ifnonnull 2
         1: .line 111
            new java.lang.IllegalArgumentException
            dup
            ldc "keyedPool must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 113
      StackMap locals:
      StackMap stack:
            iload 1 /* minIdle */
            ifge 4
         3: .line 114
            new java.lang.IllegalArgumentException
            dup
            ldc "minIdle must be non-negative."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 116
      StackMap locals:
      StackMap stack:
            new org.apache.commons.pool2.PoolUtils$ObjectPoolMinIdleTimerTask
            dup
            aload 0 /* pool */
            iload 1 /* minIdle */
            invokespecial org.apache.commons.pool2.PoolUtils$ObjectPoolMinIdleTimerTask.<init>:(Lorg/apache/commons/pool2/ObjectPool;I)V
            astore 4 /* task */
        start local 4 // java.util.TimerTask task
         5: .line 117
            invokestatic org.apache.commons.pool2.PoolUtils.getMinIdleTimer:()Ljava/util/Timer;
            aload 4 /* task */
            lconst_0
            lload 2 /* period */
            invokevirtual java.util.Timer.schedule:(Ljava/util/TimerTask;JJ)V
         6: .line 118
            aload 4 /* task */
            areturn
        end local 4 // java.util.TimerTask task
        end local 2 // long period
        end local 1 // int minIdle
        end local 0 // org.apache.commons.pool2.ObjectPool pool
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     pool  Lorg/apache/commons/pool2/ObjectPool<TT;>;
            0    7     1  minIdle  I
            0    7     2   period  J
            5    7     4     task  Ljava/util/TimerTask;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: <T:Ljava/lang/Object;>(Lorg/apache/commons/pool2/ObjectPool<TT;>;IJ)Ljava/util/TimerTask;
    MethodParameters:
         Name  Flags
      pool     final
      minIdle  final
      period   final

  public static <K, V> java.util.TimerTask checkMinIdle(org.apache.commons.pool2.KeyedObjectPool<K, V>, K, int, long);
    descriptor: (Lorg/apache/commons/pool2/KeyedObjectPool;Ljava/lang/Object;IJ)Ljava/util/TimerTask;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
        start local 1 // java.lang.Object key
        start local 2 // int minIdle
        start local 3 // long period
         0: .line 151
            aload 0 /* keyedPool */
            ifnonnull 2
         1: .line 152
            new java.lang.IllegalArgumentException
            dup
            ldc "keyedPool must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 154
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ifnonnull 4
         3: .line 155
            new java.lang.IllegalArgumentException
            dup
            ldc "key must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 157
      StackMap locals:
      StackMap stack:
            iload 2 /* minIdle */
            ifge 6
         5: .line 158
            new java.lang.IllegalArgumentException
            dup
            ldc "minIdle must be non-negative."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 160
      StackMap locals:
      StackMap stack:
            new org.apache.commons.pool2.PoolUtils$KeyedObjectPoolMinIdleTimerTask
            dup
         7: .line 161
            aload 0 /* keyedPool */
            aload 1 /* key */
            iload 2 /* minIdle */
         8: .line 160
            invokespecial org.apache.commons.pool2.PoolUtils$KeyedObjectPoolMinIdleTimerTask.<init>:(Lorg/apache/commons/pool2/KeyedObjectPool;Ljava/lang/Object;I)V
            astore 5 /* task */
        start local 5 // java.util.TimerTask task
         9: .line 162
            invokestatic org.apache.commons.pool2.PoolUtils.getMinIdleTimer:()Ljava/util/Timer;
            aload 5 /* task */
            lconst_0
            lload 3 /* period */
            invokevirtual java.util.Timer.schedule:(Ljava/util/TimerTask;JJ)V
        10: .line 163
            aload 5 /* task */
            areturn
        end local 5 // java.util.TimerTask task
        end local 3 // long period
        end local 2 // int minIdle
        end local 1 // java.lang.Object key
        end local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0  keyedPool  Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
            0   11     1        key  TK;
            0   11     2    minIdle  I
            0   11     3     period  J
            9   11     5       task  Ljava/util/TimerTask;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;TK;IJ)Ljava/util/TimerTask;
    MethodParameters:
           Name  Flags
      keyedPool  final
      key        final
      minIdle    final
      period     final

  public static <K, V> java.util.Map<K, java.util.TimerTask> checkMinIdle(org.apache.commons.pool2.KeyedObjectPool<K, V>, java.util.Collection<K>, int, long);
    descriptor: (Lorg/apache/commons/pool2/KeyedObjectPool;Ljava/util/Collection;IJ)Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
        start local 1 // java.util.Collection keys
        start local 2 // int minIdle
        start local 3 // long period
         0: .line 197
            aload 1 /* keys */
            ifnonnull 2
         1: .line 198
            new java.lang.IllegalArgumentException
            dup
            ldc "keys must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 200
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            aload 1 /* keys */
            invokeinterface java.util.Collection.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 5 /* tasks */
        start local 5 // java.util.Map tasks
         3: .line 201
            aload 1 /* keys */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
        start local 6 // java.util.Iterator iter
         4: .line 202
            goto 8
         5: .line 203
      StackMap locals: java.util.Map java.util.Iterator
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 7 /* key */
        start local 7 // java.lang.Object key
         6: .line 204
            aload 0 /* keyedPool */
            aload 7 /* key */
            iload 2 /* minIdle */
            lload 3 /* period */
            invokestatic org.apache.commons.pool2.PoolUtils.checkMinIdle:(Lorg/apache/commons/pool2/KeyedObjectPool;Ljava/lang/Object;IJ)Ljava/util/TimerTask;
            astore 8 /* task */
        start local 8 // java.util.TimerTask task
         7: .line 205
            aload 5 /* tasks */
            aload 7 /* key */
            aload 8 /* task */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.util.TimerTask task
        end local 7 // java.lang.Object key
         8: .line 202
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 207
            aload 5 /* tasks */
            areturn
        end local 6 // java.util.Iterator iter
        end local 5 // java.util.Map tasks
        end local 3 // long period
        end local 2 // int minIdle
        end local 1 // java.util.Collection keys
        end local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  keyedPool  Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
            0   10     1       keys  Ljava/util/Collection<TK;>;
            0   10     2    minIdle  I
            0   10     3     period  J
            3   10     5      tasks  Ljava/util/Map<TK;Ljava/util/TimerTask;>;
            4   10     6       iter  Ljava/util/Iterator<TK;>;
            6    8     7        key  TK;
            7    8     8       task  Ljava/util/TimerTask;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;Ljava/util/Collection<TK;>;IJ)Ljava/util/Map<TK;Ljava/util/TimerTask;>;
    MethodParameters:
           Name  Flags
      keyedPool  final
      keys       final
      minIdle    final
      period     final

  public static <T> void prefill(org.apache.commons.pool2.ObjectPool<T>, );
    descriptor: (Lorg/apache/commons/pool2/ObjectPool;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.commons.pool2.ObjectPool pool
        start local 1 // int count
         0: .line 226
            aload 0 /* pool */
            ifnonnull 2
         1: .line 227
            new java.lang.IllegalArgumentException
            dup
            ldc "pool must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 229
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 230
      StackMap locals: int
      StackMap stack:
            aload 0 /* pool */
            invokeinterface org.apache.commons.pool2.ObjectPool.addObject:()V
         5: .line 229
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            iload 1 /* count */
            if_icmplt 4
        end local 2 // int i
         7: .line 232
            return
        end local 1 // int count
        end local 0 // org.apache.commons.pool2.ObjectPool pool
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   pool  Lorg/apache/commons/pool2/ObjectPool<TT;>;
            0    8     1  count  I
            3    7     2      i  I
    Exceptions:
      throws java.lang.Exception, java.lang.IllegalArgumentException
    Signature: <T:Ljava/lang/Object;>(Lorg/apache/commons/pool2/ObjectPool<TT;>;I)V
    MethodParameters:
       Name  Flags
      pool   final
      count  final

  public static <K, V> void prefill(org.apache.commons.pool2.KeyedObjectPool<K, V>, K, );
    descriptor: (Lorg/apache/commons/pool2/KeyedObjectPool;Ljava/lang/Object;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
        start local 1 // java.lang.Object key
        start local 2 // int count
         0: .line 255
            aload 0 /* keyedPool */
            ifnonnull 2
         1: .line 256
            new java.lang.IllegalArgumentException
            dup
            ldc "keyedPool must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 258
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            ifnonnull 4
         3: .line 259
            new java.lang.IllegalArgumentException
            dup
            ldc "key must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 261
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 262
      StackMap locals: int
      StackMap stack:
            aload 0 /* keyedPool */
            aload 1 /* key */
            invokeinterface org.apache.commons.pool2.KeyedObjectPool.addObject:(Ljava/lang/Object;)V
         7: .line 261
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* count */
            if_icmplt 6
        end local 3 // int i
         9: .line 264
            return
        end local 2 // int count
        end local 1 // java.lang.Object key
        end local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  keyedPool  Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
            0   10     1        key  TK;
            0   10     2      count  I
            5    9     3          i  I
    Exceptions:
      throws java.lang.Exception, java.lang.IllegalArgumentException
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;TK;I)V
    MethodParameters:
           Name  Flags
      keyedPool  final
      key        final
      count      final

  public static <K, V> void prefill(org.apache.commons.pool2.KeyedObjectPool<K, V>, java.util.Collection<K>, );
    descriptor: (Lorg/apache/commons/pool2/KeyedObjectPool;Ljava/util/Collection;I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
        start local 1 // java.util.Collection keys
        start local 2 // int count
         0: .line 290
            aload 1 /* keys */
            ifnonnull 2
         1: .line 291
            new java.lang.IllegalArgumentException
            dup
            ldc "keys must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 293
      StackMap locals:
      StackMap stack:
            aload 1 /* keys */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         3: .line 294
            goto 5
         4: .line 295
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 0 /* keyedPool */
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            iload 2 /* count */
            invokestatic org.apache.commons.pool2.PoolUtils.prefill:(Lorg/apache/commons/pool2/KeyedObjectPool;Ljava/lang/Object;I)V
         5: .line 294
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         6: .line 297
            return
        end local 3 // java.util.Iterator iter
        end local 2 // int count
        end local 1 // java.util.Collection keys
        end local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  keyedPool  Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
            0    7     1       keys  Ljava/util/Collection<TK;>;
            0    7     2      count  I
            3    7     3       iter  Ljava/util/Iterator<TK;>;
    Exceptions:
      throws java.lang.Exception, java.lang.IllegalArgumentException
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;Ljava/util/Collection<TK;>;I)V
    MethodParameters:
           Name  Flags
      keyedPool  final
      keys       final
      count      final

  public static <T> org.apache.commons.pool2.ObjectPool<T> synchronizedPool(org.apache.commons.pool2.ObjectPool<T>);
    descriptor: (Lorg/apache/commons/pool2/ObjectPool;)Lorg/apache/commons/pool2/ObjectPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.ObjectPool pool
         0: .line 317
            aload 0 /* pool */
            ifnonnull 2
         1: .line 318
            new java.lang.IllegalArgumentException
            dup
            ldc "pool must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 331
      StackMap locals:
      StackMap stack:
            new org.apache.commons.pool2.PoolUtils$SynchronizedObjectPool
            dup
            aload 0 /* pool */
            invokespecial org.apache.commons.pool2.PoolUtils$SynchronizedObjectPool.<init>:(Lorg/apache/commons/pool2/ObjectPool;)V
            areturn
        end local 0 // org.apache.commons.pool2.ObjectPool pool
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  pool  Lorg/apache/commons/pool2/ObjectPool<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/apache/commons/pool2/ObjectPool<TT;>;)Lorg/apache/commons/pool2/ObjectPool<TT;>;
    MethodParameters:
      Name  Flags
      pool  final

  public static <K, V> org.apache.commons.pool2.KeyedObjectPool<K, V> synchronizedPool(org.apache.commons.pool2.KeyedObjectPool<K, V>);
    descriptor: (Lorg/apache/commons/pool2/KeyedObjectPool;)Lorg/apache/commons/pool2/KeyedObjectPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
         0: .line 364
            new org.apache.commons.pool2.PoolUtils$SynchronizedKeyedObjectPool
            dup
            aload 0 /* keyedPool */
            invokespecial org.apache.commons.pool2.PoolUtils$SynchronizedKeyedObjectPool.<init>:(Lorg/apache/commons/pool2/KeyedObjectPool;)V
            areturn
        end local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  keyedPool  Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;)Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
    MethodParameters:
           Name  Flags
      keyedPool  final

  public static <T> org.apache.commons.pool2.PooledObjectFactory<T> synchronizedPooledFactory(org.apache.commons.pool2.PooledObjectFactory<T>);
    descriptor: (Lorg/apache/commons/pool2/PooledObjectFactory;)Lorg/apache/commons/pool2/PooledObjectFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.PooledObjectFactory factory
         0: .line 379
            new org.apache.commons.pool2.PoolUtils$SynchronizedPooledObjectFactory
            dup
            aload 0 /* factory */
            invokespecial org.apache.commons.pool2.PoolUtils$SynchronizedPooledObjectFactory.<init>:(Lorg/apache/commons/pool2/PooledObjectFactory;)V
            areturn
        end local 0 // org.apache.commons.pool2.PooledObjectFactory factory
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  factory  Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;)Lorg/apache/commons/pool2/PooledObjectFactory<TT;>;
    MethodParameters:
         Name  Flags
      factory  final

  public static <K, V> org.apache.commons.pool2.KeyedPooledObjectFactory<K, V> synchronizedKeyedPooledFactory(org.apache.commons.pool2.KeyedPooledObjectFactory<K, V>);
    descriptor: (Lorg/apache/commons/pool2/KeyedPooledObjectFactory;)Lorg/apache/commons/pool2/KeyedPooledObjectFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.KeyedPooledObjectFactory keyedFactory
         0: .line 395
            new org.apache.commons.pool2.PoolUtils$SynchronizedKeyedPooledObjectFactory
            dup
            aload 0 /* keyedFactory */
            invokespecial org.apache.commons.pool2.PoolUtils$SynchronizedKeyedPooledObjectFactory.<init>:(Lorg/apache/commons/pool2/KeyedPooledObjectFactory;)V
            areturn
        end local 0 // org.apache.commons.pool2.KeyedPooledObjectFactory keyedFactory
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  keyedFactory  Lorg/apache/commons/pool2/KeyedPooledObjectFactory<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedPooledObjectFactory<TK;TV;>;)Lorg/apache/commons/pool2/KeyedPooledObjectFactory<TK;TV;>;
    MethodParameters:
              Name  Flags
      keyedFactory  final

  public static <T> org.apache.commons.pool2.ObjectPool<T> erodingPool(org.apache.commons.pool2.ObjectPool<T>);
    descriptor: (Lorg/apache/commons/pool2/ObjectPool;)Lorg/apache/commons/pool2/ObjectPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.ObjectPool pool
         0: .line 414
            aload 0 /* pool */
            fconst_1
            invokestatic org.apache.commons.pool2.PoolUtils.erodingPool:(Lorg/apache/commons/pool2/ObjectPool;F)Lorg/apache/commons/pool2/ObjectPool;
            areturn
        end local 0 // org.apache.commons.pool2.ObjectPool pool
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  pool  Lorg/apache/commons/pool2/ObjectPool<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lorg/apache/commons/pool2/ObjectPool<TT;>;)Lorg/apache/commons/pool2/ObjectPool<TT;>;
    MethodParameters:
      Name  Flags
      pool  final

  public static <T> org.apache.commons.pool2.ObjectPool<T> erodingPool(org.apache.commons.pool2.ObjectPool<T>, float);
    descriptor: (Lorg/apache/commons/pool2/ObjectPool;F)Lorg/apache/commons/pool2/ObjectPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.ObjectPool pool
        start local 1 // float factor
         0: .line 445
            aload 0 /* pool */
            ifnonnull 2
         1: .line 446
            new java.lang.IllegalArgumentException
            dup
            ldc "pool must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 448
      StackMap locals:
      StackMap stack:
            fload 1 /* factor */
            fconst_0
            fcmpg
            ifgt 4
         3: .line 449
            new java.lang.IllegalArgumentException
            dup
            ldc "factor must be positive."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 451
      StackMap locals:
      StackMap stack:
            new org.apache.commons.pool2.PoolUtils$ErodingObjectPool
            dup
            aload 0 /* pool */
            fload 1 /* factor */
            invokespecial org.apache.commons.pool2.PoolUtils$ErodingObjectPool.<init>:(Lorg/apache/commons/pool2/ObjectPool;F)V
            areturn
        end local 1 // float factor
        end local 0 // org.apache.commons.pool2.ObjectPool pool
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    pool  Lorg/apache/commons/pool2/ObjectPool<TT;>;
            0    5     1  factor  F
    Signature: <T:Ljava/lang/Object;>(Lorg/apache/commons/pool2/ObjectPool<TT;>;F)Lorg/apache/commons/pool2/ObjectPool<TT;>;
    MethodParameters:
        Name  Flags
      pool    final
      factor  final

  public static <K, V> org.apache.commons.pool2.KeyedObjectPool<K, V> erodingPool(org.apache.commons.pool2.KeyedObjectPool<K, V>);
    descriptor: (Lorg/apache/commons/pool2/KeyedObjectPool;)Lorg/apache/commons/pool2/KeyedObjectPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
         0: .line 473
            aload 0 /* keyedPool */
            fconst_1
            invokestatic org.apache.commons.pool2.PoolUtils.erodingPool:(Lorg/apache/commons/pool2/KeyedObjectPool;F)Lorg/apache/commons/pool2/KeyedObjectPool;
            areturn
        end local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  keyedPool  Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;)Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
    MethodParameters:
           Name  Flags
      keyedPool  final

  public static <K, V> org.apache.commons.pool2.KeyedObjectPool<K, V> erodingPool(org.apache.commons.pool2.KeyedObjectPool<K, V>, float);
    descriptor: (Lorg/apache/commons/pool2/KeyedObjectPool;F)Lorg/apache/commons/pool2/KeyedObjectPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
        start local 1 // float factor
         0: .line 505
            aload 0 /* keyedPool */
            fload 1 /* factor */
            iconst_0
            invokestatic org.apache.commons.pool2.PoolUtils.erodingPool:(Lorg/apache/commons/pool2/KeyedObjectPool;FZ)Lorg/apache/commons/pool2/KeyedObjectPool;
            areturn
        end local 1 // float factor
        end local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  keyedPool  Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
            0    1     1     factor  F
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;F)Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
    MethodParameters:
           Name  Flags
      keyedPool  final
      factor     final

  public static <K, V> org.apache.commons.pool2.KeyedObjectPool<K, V> erodingPool(org.apache.commons.pool2.KeyedObjectPool<K, V>, float, boolean);
    descriptor: (Lorg/apache/commons/pool2/KeyedObjectPool;FZ)Lorg/apache/commons/pool2/KeyedObjectPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
        start local 1 // float factor
        start local 2 // boolean perKey
         0: .line 547
            aload 0 /* keyedPool */
            ifnonnull 2
         1: .line 548
            new java.lang.IllegalArgumentException
            dup
            ldc "keyedPool must not be null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 550
      StackMap locals:
      StackMap stack:
            fload 1 /* factor */
            fconst_0
            fcmpg
            ifgt 4
         3: .line 551
            new java.lang.IllegalArgumentException
            dup
            ldc "factor must be positive."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 553
      StackMap locals:
      StackMap stack:
            iload 2 /* perKey */
            ifeq 6
         5: .line 554
            new org.apache.commons.pool2.PoolUtils$ErodingPerKeyKeyedObjectPool
            dup
            aload 0 /* keyedPool */
            fload 1 /* factor */
            invokespecial org.apache.commons.pool2.PoolUtils$ErodingPerKeyKeyedObjectPool.<init>:(Lorg/apache/commons/pool2/KeyedObjectPool;F)V
            areturn
         6: .line 556
      StackMap locals:
      StackMap stack:
            new org.apache.commons.pool2.PoolUtils$ErodingKeyedObjectPool
            dup
            aload 0 /* keyedPool */
            fload 1 /* factor */
            invokespecial org.apache.commons.pool2.PoolUtils$ErodingKeyedObjectPool.<init>:(Lorg/apache/commons/pool2/KeyedObjectPool;F)V
            areturn
        end local 2 // boolean perKey
        end local 1 // float factor
        end local 0 // org.apache.commons.pool2.KeyedObjectPool keyedPool
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  keyedPool  Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
            0    7     1     factor  F
            0    7     2     perKey  Z
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;FZ)Lorg/apache/commons/pool2/KeyedObjectPool<TK;TV;>;
    MethodParameters:
           Name  Flags
      keyedPool  final
      factor     final
      perKey     final

  private static java.util.Timer getMinIdleTimer();
    descriptor: ()Ljava/util/Timer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 565
            getstatic org.apache.commons.pool2.PoolUtils$TimerHolder.MIN_IDLE_TIMER:Ljava/util/Timer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "PoolUtils.java"
NestMembers:
  org.apache.commons.pool2.PoolUtils$ErodingFactor  org.apache.commons.pool2.PoolUtils$ErodingKeyedObjectPool  org.apache.commons.pool2.PoolUtils$ErodingObjectPool  org.apache.commons.pool2.PoolUtils$ErodingPerKeyKeyedObjectPool  org.apache.commons.pool2.PoolUtils$KeyedObjectPoolMinIdleTimerTask  org.apache.commons.pool2.PoolUtils$ObjectPoolMinIdleTimerTask  org.apache.commons.pool2.PoolUtils$SynchronizedKeyedObjectPool  org.apache.commons.pool2.PoolUtils$SynchronizedKeyedPooledObjectFactory  org.apache.commons.pool2.PoolUtils$SynchronizedObjectPool  org.apache.commons.pool2.PoolUtils$SynchronizedPooledObjectFactory  org.apache.commons.pool2.PoolUtils$TimerHolder
InnerClasses:
  private final ErodingFactor = org.apache.commons.pool2.PoolUtils$ErodingFactor of org.apache.commons.pool2.PoolUtils
  private ErodingKeyedObjectPool = org.apache.commons.pool2.PoolUtils$ErodingKeyedObjectPool of org.apache.commons.pool2.PoolUtils
  private ErodingObjectPool = org.apache.commons.pool2.PoolUtils$ErodingObjectPool of org.apache.commons.pool2.PoolUtils
  private final ErodingPerKeyKeyedObjectPool = org.apache.commons.pool2.PoolUtils$ErodingPerKeyKeyedObjectPool of org.apache.commons.pool2.PoolUtils
  private final KeyedObjectPoolMinIdleTimerTask = org.apache.commons.pool2.PoolUtils$KeyedObjectPoolMinIdleTimerTask of org.apache.commons.pool2.PoolUtils
  private final ObjectPoolMinIdleTimerTask = org.apache.commons.pool2.PoolUtils$ObjectPoolMinIdleTimerTask of org.apache.commons.pool2.PoolUtils
  private final SynchronizedKeyedObjectPool = org.apache.commons.pool2.PoolUtils$SynchronizedKeyedObjectPool of org.apache.commons.pool2.PoolUtils
  private final SynchronizedKeyedPooledObjectFactory = org.apache.commons.pool2.PoolUtils$SynchronizedKeyedPooledObjectFactory of org.apache.commons.pool2.PoolUtils
  private final SynchronizedObjectPool = org.apache.commons.pool2.PoolUtils$SynchronizedObjectPool of org.apache.commons.pool2.PoolUtils
  private final SynchronizedPooledObjectFactory = org.apache.commons.pool2.PoolUtils$SynchronizedPooledObjectFactory of org.apache.commons.pool2.PoolUtils
  TimerHolder = org.apache.commons.pool2.PoolUtils$TimerHolder of org.apache.commons.pool2.PoolUtils