final class org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread extends java.lang.Thread
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread
  super_class: java.lang.Thread
{
  private volatile boolean requestEnd;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  final org.apache.commons.vfs2.cache.SoftRefFilesCache this$0;
    descriptor: Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(org.apache.commons.vfs2.cache.SoftRefFilesCache);
    descriptor: (Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread this
         0: .line 65
            aload 0 /* this */
            aload 1
            putfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            aload 0 /* this */
            invokespecial java.lang.Thread.<init>:()V
         1: .line 66
            aload 0 /* this */
            ldc Lorg/apache/commons/vfs2/cache/SoftRefFilesCache$SoftRefReleaseThread;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.setName:(Ljava/lang/String;)V
         2: .line 67
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.setDaemon:(Z)V
         3: .line 68
            return
        end local 0 // org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/vfs2/cache/SoftRefFilesCache$SoftRefReleaseThread;
    MethodParameters:
        Name  Flags
      this$0  final

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread this
         0: .line 72
            goto 20
         1: .line 74
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache.refQueue:Ljava/lang/ref/ReferenceQueue;
            ldc 1000
            invokevirtual java.lang.ref.ReferenceQueue.remove:(J)Ljava/lang/ref/Reference;
            astore 1 /* ref */
        start local 1 // java.lang.ref.Reference ref
         2: .line 75
            aload 1 /* ref */
            ifnonnull 4
         3: .line 76
            goto 20
         4: .line 79
      StackMap locals: java.lang.ref.Reference
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache.lock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         5: .line 81
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache.refReverseMap:Ljava/util/Map;
            aload 1 /* ref */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.vfs2.cache.FileSystemAndNameKey
            astore 2 /* key */
        start local 2 // org.apache.commons.vfs2.cache.FileSystemAndNameKey key
         6: .line 83
            aload 2 /* key */
            ifnull 12
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            aload 2 /* key */
            invokevirtual org.apache.commons.vfs2.cache.SoftRefFilesCache.removeFile:(Lorg/apache/commons/vfs2/cache/FileSystemAndNameKey;)Z
            ifeq 12
         7: .line 84
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            aload 2 /* key */
            invokevirtual org.apache.commons.vfs2.cache.FileSystemAndNameKey.getFileSystem:()Lorg/apache/commons/vfs2/FileSystem;
            invokevirtual org.apache.commons.vfs2.cache.SoftRefFilesCache.close:(Lorg/apache/commons/vfs2/FileSystem;)V
        end local 2 // org.apache.commons.vfs2.cache.FileSystemAndNameKey key
         8: .line 86
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
        10: .line 87
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache.lock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 88
            aload 3
            athrow
        12: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache.lock:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        end local 1 // java.lang.ref.Reference ref
        13: .line 89
            goto 20
      StackMap locals: org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread
      StackMap stack: java.lang.InterruptedException
        14: pop
        15: .line 90
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.requestEnd:Z
            ifne 21
        16: .line 91
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.this$0:Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;
            invokestatic org.apache.commons.vfs2.cache.SoftRefFilesCache.access$0:(Lorg/apache/commons/vfs2/cache/SoftRefFilesCache;)Lorg/apache/commons/logging/Log;
            getstatic org.apache.commons.vfs2.cache.SoftRefFilesCache.log:Lorg/apache/commons/logging/Log;
        17: .line 92
            ldc "vfs.impl/SoftRefReleaseThread-interrupt.info"
            invokestatic org.apache.commons.vfs2.util.Messages.getString:(Ljava/lang/String;)Ljava/lang/String;
        18: .line 91
            invokestatic org.apache.commons.vfs2.VfsLog.warn:(Lorg/apache/commons/logging/Log;Lorg/apache/commons/logging/Log;Ljava/lang/String;)V
        19: .line 94
            goto 21
        20: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread.requestEnd:Z
            ifne 21
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 1
        21: .line 97
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lorg/apache/commons/vfs2/cache/SoftRefFilesCache$SoftRefReleaseThread;
            2   13     1   ref  Ljava/lang/ref/Reference<*>;
            6    8     2   key  Lorg/apache/commons/vfs2/cache/FileSystemAndNameKey;
      Exception table:
        from    to  target  type
           5     9       9  any
           1     3      14  Class java.lang.InterruptedException
           4    13      14  Class java.lang.InterruptedException
}
SourceFile: "SoftRefFilesCache.java"
NestHost: org.apache.commons.vfs2.cache.SoftRefFilesCache
InnerClasses:
  private final SoftRefReleaseThread = org.apache.commons.vfs2.cache.SoftRefFilesCache$SoftRefReleaseThread of org.apache.commons.vfs2.cache.SoftRefFilesCache