public class org.codehaus.plexus.util.SweeperPool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.codehaus.plexus.util.SweeperPool
  super_class: java.lang.Object
{
  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private transient org.codehaus.plexus.util.SweeperPool$Sweeper sweeper;
    descriptor: Lorg/codehaus/plexus/util/SweeperPool$Sweeper;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient int maxSize;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient int minSize;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private int triggerSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayList<java.lang.Object> pooledObjects;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Ljava/lang/Object;>;

  private boolean shuttingDown;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(int, int, int, int, int);
    descriptor: (IIIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // org.codehaus.plexus.util.SweeperPool this
        start local 1 // int maxSize
        start local 2 // int minSize
        start local 3 // int intialCapacity
        start local 4 // int sweepInterval
        start local 5 // int triggerSize
         0: .line 72
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            iconst_0
            putfield org.codehaus.plexus.util.SweeperPool.shuttingDown:Z
         2: .line 73
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* maxSize */
            invokevirtual org.codehaus.plexus.util.SweeperPool.saneConvert:(I)I
            putfield org.codehaus.plexus.util.SweeperPool.maxSize:I
         3: .line 74
            aload 0 /* this */
            aload 0 /* this */
            iload 2 /* minSize */
            invokevirtual org.codehaus.plexus.util.SweeperPool.saneConvert:(I)I
            putfield org.codehaus.plexus.util.SweeperPool.minSize:I
         4: .line 75
            aload 0 /* this */
            aload 0 /* this */
            iload 5 /* triggerSize */
            invokevirtual org.codehaus.plexus.util.SweeperPool.saneConvert:(I)I
            putfield org.codehaus.plexus.util.SweeperPool.triggerSize:I
         5: .line 76
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iload 3 /* intialCapacity */
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
         6: .line 79
            iload 4 /* sweepInterval */
            ifle 9
         7: .line 81
            aload 0 /* this */
            new org.codehaus.plexus.util.SweeperPool$Sweeper
            dup
            aload 0 /* this */
            iload 4 /* sweepInterval */
            invokespecial org.codehaus.plexus.util.SweeperPool$Sweeper.<init>:(Lorg/codehaus/plexus/util/SweeperPool;I)V
            putfield org.codehaus.plexus.util.SweeperPool.sweeper:Lorg/codehaus/plexus/util/SweeperPool$Sweeper;
         8: .line 82
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.sweeper:Lorg/codehaus/plexus/util/SweeperPool$Sweeper;
            invokevirtual org.codehaus.plexus.util.SweeperPool$Sweeper.start:()V
         9: .line 84
      StackMap locals: org.codehaus.plexus.util.SweeperPool int int int int int
      StackMap stack:
            return
        end local 5 // int triggerSize
        end local 4 // int sweepInterval
        end local 3 // int intialCapacity
        end local 2 // int minSize
        end local 1 // int maxSize
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lorg/codehaus/plexus/util/SweeperPool;
            0   10     1         maxSize  I
            0   10     2         minSize  I
            0   10     3  intialCapacity  I
            0   10     4   sweepInterval  I
            0   10     5     triggerSize  I
    MethodParameters:
                Name  Flags
      maxSize         
      minSize         
      intialCapacity  
      sweepInterval   
      triggerSize     

  private int saneConvert(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.SweeperPool this
        start local 1 // int value
         0: .line 88
            iload 1 /* value */
            ifge 2
         1: .line 90
            iconst_0
            ireturn
         2: .line 94
      StackMap locals:
      StackMap stack:
            iload 1 /* value */
            ireturn
        end local 1 // int value
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/codehaus/plexus/util/SweeperPool;
            0    3     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public synchronized java.lang.Object get();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.codehaus.plexus.util.SweeperPool this
         0: .line 103
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifeq 1
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.shuttingDown:Z
            ifeq 2
         1: .line 105
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            astore 1 /* obj */
        start local 1 // java.lang.Object obj
         3: .line 110
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual org.codehaus.plexus.util.SweeperPool.objectRetrieved:(Ljava/lang/Object;)V
         4: .line 113
            aload 1 /* obj */
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/codehaus/plexus/util/SweeperPool;
            3    5     1   obj  Ljava/lang/Object;

  public synchronized boolean put(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.SweeperPool this
        start local 1 // java.lang.Object obj
         0: .line 125
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual org.codehaus.plexus.util.SweeperPool.objectAdded:(Ljava/lang/Object;)V
         1: .line 127
            aload 1 /* obj */
            ifnull 4
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.maxSize:I
            if_icmpge 4
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.shuttingDown:Z
            ifne 4
         2: .line 129
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            aload 1 /* obj */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 131
            iconst_1
            ireturn
         4: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnull 6
         5: .line 136
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual org.codehaus.plexus.util.SweeperPool.objectDisposed:(Ljava/lang/Object;)V
         6: .line 139
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/codehaus/plexus/util/SweeperPool;
            0    7     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public synchronized int getSize();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.util.SweeperPool this
         0: .line 149
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ireturn
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/util/SweeperPool;

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // org.codehaus.plexus.util.SweeperPool this
         0: .line 157
            aload 0 /* this */
            iconst_1
            putfield org.codehaus.plexus.util.SweeperPool.shuttingDown:Z
         1: .line 159
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.sweeper:Lorg/codehaus/plexus/util/SweeperPool$Sweeper;
            ifnull 8
         2: .line 161
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.sweeper:Lorg/codehaus/plexus/util/SweeperPool$Sweeper;
            invokevirtual org.codehaus.plexus.util.SweeperPool$Sweeper.stop:()V
         3: .line 164
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.sweeper:Lorg/codehaus/plexus/util/SweeperPool$Sweeper;
            invokevirtual org.codehaus.plexus.util.SweeperPool$Sweeper.join:()V
         4: .line 165
            goto 8
         5: .line 166
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 1 /* e */
        start local 1 // java.lang.InterruptedException e
         6: .line 168
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Unexpected exception occurred: "
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 169
            aload 1 /* e */
            invokevirtual java.lang.InterruptedException.printStackTrace:()V
        end local 1 // java.lang.InterruptedException e
         8: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         9: .line 177
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.toArray:()[Ljava/lang/Object;
            astore 2 /* objects */
        start local 2 // java.lang.Object[] objects
        10: .line 179
            aload 2 /* objects */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 14
      StackMap locals: org.codehaus.plexus.util.SweeperPool org.codehaus.plexus.util.SweeperPool java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
        11: aload 6
            iload 4
            aaload
            astore 3 /* object */
        start local 3 // java.lang.Object object
        12: .line 181
            aload 0 /* this */
            aload 3 /* object */
            invokevirtual org.codehaus.plexus.util.SweeperPool.objectDisposed:(Ljava/lang/Object;)V
        end local 3 // java.lang.Object object
        13: .line 179
            iinc 4 1
      StackMap locals:
      StackMap stack:
        14: iload 4
            iload 5
            if_icmplt 11
        15: .line 184
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        end local 2 // java.lang.Object[] objects
        16: .line 173
            aload 1
            monitorexit
        17: goto 20
      StackMap locals: org.codehaus.plexus.util.SweeperPool org.codehaus.plexus.util.SweeperPool
      StackMap stack: java.lang.Throwable
        18: aload 1
            monitorexit
        19: athrow
        20: .line 186
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   21     0     this  Lorg/codehaus/plexus/util/SweeperPool;
            6    8     1        e  Ljava/lang/InterruptedException;
           10   16     2  objects  [Ljava/lang/Object;
           12   13     3   object  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.InterruptedException
           9    17      18  any
          18    19      18  any

  boolean isDisposed();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.util.SweeperPool this
         0: .line 195
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.shuttingDown:Z
            ifne 2
         1: .line 197
            iconst_0
            ireturn
         2: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.sweeper:Lorg/codehaus/plexus/util/SweeperPool$Sweeper;
            ifnonnull 4
         3: .line 203
            iconst_1
            ireturn
         4: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.sweeper:Lorg/codehaus/plexus/util/SweeperPool$Sweeper;
            invokevirtual org.codehaus.plexus.util.SweeperPool$Sweeper.hasStopped:()Z
            ireturn
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/codehaus/plexus/util/SweeperPool;

  public synchronized void trim();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.util.SweeperPool this
         0: .line 214
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.triggerSize:I
            ifle 1
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.triggerSize:I
            if_icmpge 4
         1: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.maxSize:I
            ifle 5
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.maxSize:I
            if_icmplt 5
         2: .line 217
            goto 4
         3: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            invokevirtual org.codehaus.plexus.util.SweeperPool.objectDisposed:(Ljava/lang/Object;)V
         4: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.pooledObjects:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            aload 0 /* this */
            getfield org.codehaus.plexus.util.SweeperPool.minSize:I
            if_icmpgt 3
         5: .line 222
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/codehaus/plexus/util/SweeperPool;

  public void objectDisposed(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.SweeperPool this
        start local 1 // java.lang.Object obj
         0: .line 232
            return
        end local 1 // java.lang.Object obj
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/util/SweeperPool;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public void objectAdded(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.SweeperPool this
        start local 1 // java.lang.Object obj
         0: .line 241
            return
        end local 1 // java.lang.Object obj
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/util/SweeperPool;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public void objectRetrieved(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.codehaus.plexus.util.SweeperPool this
        start local 1 // java.lang.Object obj
         0: .line 251
            return
        end local 1 // java.lang.Object obj
        end local 0 // org.codehaus.plexus.util.SweeperPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/codehaus/plexus/util/SweeperPool;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "SweeperPool.java"
NestMembers:
  org.codehaus.plexus.util.SweeperPool$Sweeper
InnerClasses:
  private Sweeper = org.codehaus.plexus.util.SweeperPool$Sweeper of org.codehaus.plexus.util.SweeperPool