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