public class org.apache.commons.vfs2.cache.LRUFilesCache extends org.apache.commons.vfs2.cache.AbstractFilesCache
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.commons.vfs2.cache.LRUFilesCache
super_class: org.apache.commons.vfs2.cache.AbstractFilesCache
{
private static final int DEFAULT_LRU_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100
private static final org.apache.commons.logging.Log log;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.ConcurrentMap<org.apache.commons.vfs2.FileSystem, java.util.Map<org.apache.commons.vfs2.FileName, org.apache.commons.vfs2.FileObject>> filesystemCache;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Lorg/apache/commons/vfs2/FileSystem;Ljava/util/Map<Lorg/apache/commons/vfs2/FileName;Lorg/apache/commons/vfs2/FileObject;>;>;
private final int lruSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.ReadWriteLock rwLock;
descriptor: Ljava/util/concurrent/locks/ReadWriteLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock readLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock writeLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/commons/vfs2/cache/LRUFilesCache;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putstatic org.apache.commons.vfs2.cache.LRUFilesCache.log:Lorg/apache/commons/logging/Log;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
bipush 100
invokespecial org.apache.commons.vfs2.cache.LRUFilesCache.<init>:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.apache.commons.vfs2.cache.AbstractFilesCache.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
bipush 10
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.apache.commons.vfs2.cache.LRUFilesCache.filesystemCache:Ljava/util/concurrent/ConcurrentMap;
2: aload 0
new java.util.concurrent.locks.ReentrantReadWriteLock
dup
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
putfield org.apache.commons.vfs2.cache.LRUFilesCache.rwLock:Ljava/util/concurrent/locks/ReadWriteLock;
3: aload 0
aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.rwLock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
putfield org.apache.commons.vfs2.cache.LRUFilesCache.readLock:Ljava/util/concurrent/locks/Lock;
4: aload 0
aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.rwLock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
putfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
5: aload 0
iload 1
putfield org.apache.commons.vfs2.cache.LRUFilesCache.lruSize:I
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
0 7 1 lruSize I
MethodParameters:
Name Flags
lruSize final
public void putFile(org.apache.commons.vfs2.FileObject);
descriptor: (Lorg/apache/commons/vfs2/FileObject;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.apache.commons.vfs2.FileObject.getFileSystem:()Lorg/apache/commons/vfs2/FileSystem;
invokevirtual org.apache.commons.vfs2.cache.LRUFilesCache.getOrCreateFilesystemCache:(Lorg/apache/commons/vfs2/FileSystem;)Ljava/util/Map;
astore 2
start local 2 1: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 2
aload 1
invokeinterface org.apache.commons.vfs2.FileObject.getName:()Lorg/apache/commons/vfs2/FileName;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: goto 7
StackMap locals: org.apache.commons.vfs2.cache.LRUFilesCache org.apache.commons.vfs2.FileObject java.util.Map
StackMap stack: java.lang.Throwable
4: astore 3
5: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 3
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
0 9 1 file Lorg/apache/commons/vfs2/FileObject;
1 9 2 files Ljava/util/Map<Lorg/apache/commons/vfs2/FileName;Lorg/apache/commons/vfs2/FileObject;>;
Exception table:
from to target type
2 4 4 any
MethodParameters:
Name Flags
file final
public boolean putFileIfAbsent(org.apache.commons.vfs2.FileObject);
descriptor: (Lorg/apache/commons/vfs2/FileObject;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.apache.commons.vfs2.FileObject.getFileSystem:()Lorg/apache/commons/vfs2/FileSystem;
invokevirtual org.apache.commons.vfs2.cache.LRUFilesCache.getOrCreateFilesystemCache:(Lorg/apache/commons/vfs2/FileSystem;)Ljava/util/Map;
astore 2
start local 2 1: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 1
invokeinterface org.apache.commons.vfs2.FileObject.getName:()Lorg/apache/commons/vfs2/FileName;
astore 3
start local 3 3: aload 2
aload 3
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 6
4: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
5: iconst_0
ireturn
6: StackMap locals: java.util.Map org.apache.commons.vfs2.FileName
StackMap stack:
aload 2
aload 3
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: iconst_1
ireturn
end local 3 9: StackMap locals: org.apache.commons.vfs2.cache.LRUFilesCache org.apache.commons.vfs2.FileObject java.util.Map
StackMap stack: java.lang.Throwable
astore 4
10: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
11: aload 4
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
0 12 1 file Lorg/apache/commons/vfs2/FileObject;
1 12 2 files Ljava/util/Map<Lorg/apache/commons/vfs2/FileName;Lorg/apache/commons/vfs2/FileObject;>;
3 9 3 name Lorg/apache/commons/vfs2/FileName;
Exception table:
from to target type
2 4 9 any
6 7 9 any
MethodParameters:
Name Flags
file final
public org.apache.commons.vfs2.FileObject getFile(org.apache.commons.vfs2.FileSystem, org.apache.commons.vfs2.FileName);
descriptor: (Lorg/apache/commons/vfs2/FileSystem;Lorg/apache/commons/vfs2/FileName;)Lorg/apache/commons/vfs2/FileObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.apache.commons.vfs2.cache.LRUFilesCache.getOrCreateFilesystemCache:(Lorg/apache/commons/vfs2/FileSystem;)Ljava/util/Map;
astore 3
start local 3 1: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 3
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.commons.vfs2.FileObject
astore 5
3: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
4: aload 5
areturn
5: StackMap locals: org.apache.commons.vfs2.cache.LRUFilesCache org.apache.commons.vfs2.FileSystem org.apache.commons.vfs2.FileName java.util.Map
StackMap stack: java.lang.Throwable
astore 4
6: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
0 8 1 filesystem Lorg/apache/commons/vfs2/FileSystem;
0 8 2 name Lorg/apache/commons/vfs2/FileName;
1 8 3 files Ljava/util/Map<Lorg/apache/commons/vfs2/FileName;Lorg/apache/commons/vfs2/FileObject;>;
Exception table:
from to target type
2 3 5 any
MethodParameters:
Name Flags
filesystem final
name final
public void clear(org.apache.commons.vfs2.FileSystem);
descriptor: (Lorg/apache/commons/vfs2/FileSystem;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.commons.vfs2.cache.LRUFilesCache.getOrCreateFilesystemCache:(Lorg/apache/commons/vfs2/FileSystem;)Ljava/util/Map;
astore 2
start local 2 1: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 2
invokeinterface java.util.Map.clear:()V
3: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.filesystemCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: goto 8
StackMap locals: org.apache.commons.vfs2.cache.LRUFilesCache org.apache.commons.vfs2.FileSystem java.util.Map
StackMap stack: java.lang.Throwable
5: astore 3
6: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: aload 3
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
0 10 1 filesystem Lorg/apache/commons/vfs2/FileSystem;
1 10 2 files Ljava/util/Map<Lorg/apache/commons/vfs2/FileName;Lorg/apache/commons/vfs2/FileObject;>;
Exception table:
from to target type
2 5 5 any
MethodParameters:
Name Flags
filesystem final
protected java.util.Map<org.apache.commons.vfs2.FileName, org.apache.commons.vfs2.FileObject> getOrCreateFilesystemCache(org.apache.commons.vfs2.FileSystem);
descriptor: (Lorg/apache/commons/vfs2/FileSystem;)Ljava/util/Map;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.filesystemCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 2
start local 2 1: aload 2
ifnonnull 4
2: new org.apache.commons.vfs2.cache.LRUFilesCache$MyLRUMap
dup
aload 0
aload 1
aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.lruSize:I
invokespecial org.apache.commons.vfs2.cache.LRUFilesCache$MyLRUMap.<init>:(Lorg/apache/commons/vfs2/cache/LRUFilesCache;Lorg/apache/commons/vfs2/FileSystem;I)V
astore 2
3: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.filesystemCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 2
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: java.util.Map
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
0 5 1 filesystem Lorg/apache/commons/vfs2/FileSystem;
1 5 2 files Ljava/util/Map<Lorg/apache/commons/vfs2/FileName;Lorg/apache/commons/vfs2/FileObject;>;
Signature: (Lorg/apache/commons/vfs2/FileSystem;)Ljava/util/Map<Lorg/apache/commons/vfs2/FileName;Lorg/apache/commons/vfs2/FileObject;>;
MethodParameters:
Name Flags
filesystem final
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.apache.commons.vfs2.cache.AbstractFilesCache.close:()V
1: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.filesystemCache:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
public void removeFile(org.apache.commons.vfs2.FileSystem, org.apache.commons.vfs2.FileName);
descriptor: (Lorg/apache/commons/vfs2/FileSystem;Lorg/apache/commons/vfs2/FileName;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.apache.commons.vfs2.cache.LRUFilesCache.getOrCreateFilesystemCache:(Lorg/apache/commons/vfs2/FileSystem;)Ljava/util/Map;
astore 3
start local 3 1: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 3
aload 2
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 3
invokeinterface java.util.Map.size:()I
iconst_1
if_icmpge 9
4: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.filesystemCache:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: goto 9
StackMap locals: org.apache.commons.vfs2.cache.LRUFilesCache org.apache.commons.vfs2.FileSystem org.apache.commons.vfs2.FileName java.util.Map
StackMap stack: java.lang.Throwable
6: astore 4
7: aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: aload 4
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.vfs2.cache.LRUFilesCache.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
0 11 1 filesystem Lorg/apache/commons/vfs2/FileSystem;
0 11 2 name Lorg/apache/commons/vfs2/FileName;
1 11 3 files Ljava/util/Map<**>;
Exception table:
from to target type
2 6 6 any
MethodParameters:
Name Flags
filesystem final
name final
public void touchFile(org.apache.commons.vfs2.FileObject);
descriptor: (Lorg/apache/commons/vfs2/FileObject;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.apache.commons.vfs2.FileObject.getFileSystem:()Lorg/apache/commons/vfs2/FileSystem;
aload 1
invokeinterface org.apache.commons.vfs2.FileObject.getName:()Lorg/apache/commons/vfs2/FileName;
invokevirtual org.apache.commons.vfs2.cache.LRUFilesCache.getFile:(Lorg/apache/commons/vfs2/FileSystem;Lorg/apache/commons/vfs2/FileName;)Lorg/apache/commons/vfs2/FileObject;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/commons/vfs2/cache/LRUFilesCache;
0 2 1 file Lorg/apache/commons/vfs2/FileObject;
MethodParameters:
Name Flags
file final
static org.apache.commons.logging.Log access$0(org.apache.commons.vfs2.cache.LRUFilesCache);
descriptor: (Lorg/apache/commons/vfs2/cache/LRUFilesCache;)Lorg/apache/commons/logging/Log;
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.apache.commons.vfs2.cache.LRUFilesCache.getLogger:()Lorg/apache/commons/logging/Log;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "LRUFilesCache.java"
NestMembers:
org.apache.commons.vfs2.cache.LRUFilesCache$MyLRUMap
InnerClasses:
private MyLRUMap = org.apache.commons.vfs2.cache.LRUFilesCache$MyLRUMap of org.apache.commons.vfs2.cache.LRUFilesCache