public class org.aspectj.weaver.tools.cache.FlatFileCacheBacking extends org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.aspectj.weaver.tools.cache.FlatFileCacheBacking
super_class: org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking
{
private static final org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking$AsynchronousFileCacheBackingCreator<org.aspectj.weaver.tools.cache.FlatFileCacheBacking> defaultCreator;
descriptor: Lorg/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking$AsynchronousFileCacheBackingCreator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking$AsynchronousFileCacheBackingCreator<Lorg/aspectj/weaver/tools/cache/FlatFileCacheBacking;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.aspectj.weaver.tools.cache.FlatFileCacheBacking$1
dup
invokespecial org.aspectj.weaver.tools.cache.FlatFileCacheBacking$1.<init>:()V
1: putstatic org.aspectj.weaver.tools.cache.FlatFileCacheBacking.defaultCreator:Lorg/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking$AsynchronousFileCacheBackingCreator;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking.<init>:(Ljava/io/File;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/aspectj/weaver/tools/cache/FlatFileCacheBacking;
0 2 1 cacheDir Ljava/io/File;
MethodParameters:
Name Flags
cacheDir
public static final org.aspectj.weaver.tools.cache.FlatFileCacheBacking createBacking(java.io.File);
descriptor: (Ljava/io/File;)Lorg/aspectj/weaver/tools/cache/FlatFileCacheBacking;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.aspectj.weaver.tools.cache.FlatFileCacheBacking.defaultCreator:Lorg/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking$AsynchronousFileCacheBackingCreator;
invokestatic org.aspectj.weaver.tools.cache.FlatFileCacheBacking.createBacking:(Ljava/io/File;Lorg/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking$AsynchronousFileCacheBackingCreator;)Lorg/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking;
checkcast org.aspectj.weaver.tools.cache.FlatFileCacheBacking
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 cacheDir Ljava/io/File;
MethodParameters:
Name Flags
cacheDir
protected java.util.Map<java.lang.String, byte[]> readClassBytes(java.util.Map<java.lang.String, org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry>, java.io.File);
descriptor: (Ljava/util/Map;Ljava/io/File;)Ljava/util/Map;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual java.io.File.listFiles:()[Ljava/io/File;
invokevirtual org.aspectj.weaver.tools.cache.FlatFileCacheBacking.readClassBytes:(Ljava/util/Map;[Ljava/io/File;)Ljava/util/Map;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/aspectj/weaver/tools/cache/FlatFileCacheBacking;
0 1 1 indexMap Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;>;
0 1 2 cacheDir Ljava/io/File;
Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;>;Ljava/io/File;)Ljava/util/Map<Ljava/lang/String;[B>;
MethodParameters:
Name Flags
indexMap
cacheDir
protected java.util.Map<java.lang.String, byte[]> readClassBytes(java.util.Map<java.lang.String, org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry>, java.io.File[]);
descriptor: (Ljava/util/Map;[Ljava/io/File;)Ljava/util/Map;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
astore 3
start local 3 1: aload 2
invokestatic org.aspectj.util.LangUtil.isEmpty:([Ljava/lang/Object;)Z
ifeq 3
2: aload 3
areturn
3: StackMap locals: java.util.Map
StackMap stack:
aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 33
StackMap locals: org.aspectj.weaver.tools.cache.FlatFileCacheBacking java.util.Map java.io.File[] java.util.Map top int int java.io.File[]
StackMap stack:
4: aload 7
iload 5
aaload
astore 4
start local 4 5: aload 4
invokevirtual java.io.File.isFile:()Z
ifne 7
6: goto 32
7: StackMap locals: org.aspectj.weaver.tools.cache.FlatFileCacheBacking java.util.Map java.io.File[] java.util.Map java.io.File int int java.io.File[]
StackMap stack:
aload 4
invokevirtual java.io.File.getName:()Ljava/lang/String;
astore 8
start local 8 8: ldc "cache.idx"
aload 8
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 10
9: goto 32
10: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry
astore 9
start local 9 11: aload 9
ifnull 12
aload 9
getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.ignored:Z
ifeq 16
12: StackMap locals: org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry
StackMap stack:
aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
ifnull 14
aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
ifeq 14
13: aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
new java.lang.StringBuilder
dup
ldc "readClassBytes("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ") remove orphan/ignored: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.aspectj.weaver.tools.Trace.info:(Ljava/lang/String;)V
14: StackMap locals:
StackMap stack:
aload 4
invokestatic org.aspectj.util.FileUtil.deleteContents:(Ljava/io/File;)I
pop
15: goto 32
16: StackMap locals:
StackMap stack:
aload 4
invokestatic org.aspectj.util.FileUtil.readAsByteArray:(Ljava/io/File;)[B
astore 10
start local 10 17: aload 10
invokestatic org.aspectj.weaver.tools.cache.FlatFileCacheBacking.crc:([B)J
lstore 11
start local 11 18: lload 11
aload 9
getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.crcWeaved:J
lcmp
ifeq 20
19: new java.io.StreamCorruptedException
dup
new java.lang.StringBuilder
dup
ldc "Mismatched CRC - expected="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.crcWeaved:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "/got="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 11
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals: byte[] long
StackMap stack:
aload 3
aload 8
aload 10
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
ifnull 32
aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
ifeq 32
22: aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
new java.lang.StringBuilder
dup
ldc "readClassBytes("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ") cached from "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.aspectj.weaver.tools.Trace.debug:(Ljava/lang/String;)V
end local 11 end local 10 23: goto 32
StackMap locals: org.aspectj.weaver.tools.cache.FlatFileCacheBacking java.util.Map java.io.File[] java.util.Map java.io.File int int java.io.File[] java.lang.String org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry
StackMap stack: java.io.IOException
24: astore 10
start local 10 25: aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
ifnull 30
aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
ifeq 30
26: aload 0
getfield org.aspectj.weaver.tools.cache.FlatFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
new java.lang.StringBuilder
dup
ldc "Failed ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 10
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: ldc " to read bytes from "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
28: ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 10
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokeinterface org.aspectj.weaver.tools.Trace.error:(Ljava/lang/String;)V
30: StackMap locals: java.io.IOException
StackMap stack:
aload 1
aload 8
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
31: aload 4
invokestatic org.aspectj.util.FileUtil.deleteContents:(Ljava/io/File;)I
pop
end local 10 end local 9 end local 8 end local 4 32: StackMap locals: org.aspectj.weaver.tools.cache.FlatFileCacheBacking java.util.Map java.io.File[] java.util.Map top int int java.io.File[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
33: iload 5
iload 6
if_icmplt 4
34: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/aspectj/weaver/tools/cache/FlatFileCacheBacking;
0 35 1 indexMap Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;>;
0 35 2 files [Ljava/io/File;
1 35 3 result Ljava/util/Map<Ljava/lang/String;[B>;
5 32 4 file Ljava/io/File;
8 32 8 key Ljava/lang/String;
11 32 9 entry Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;
17 23 10 bytes [B
18 23 11 crc J
25 32 10 e Ljava/io/IOException;
Exception table:
from to target type
16 23 24 Class java.io.IOException
Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;>;[Ljava/io/File;)Ljava/util/Map<Ljava/lang/String;[B>;
MethodParameters:
Name Flags
indexMap
files
protected org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry resolveIndexMapEntry(java.io.File, org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry);
descriptor: (Ljava/io/File;Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;)Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.io.File
dup
aload 1
aload 2
getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.key:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3
start local 3 1: aload 2
getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.ignored:Z
ifne 2
aload 3
invokevirtual java.io.File.canRead:()Z
ifeq 3
2: StackMap locals: java.io.File
StackMap stack:
aload 2
areturn
3: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/aspectj/weaver/tools/cache/FlatFileCacheBacking;
0 4 1 cacheDir Ljava/io/File;
0 4 2 ie Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;
1 4 3 cacheEntry Ljava/io/File;
MethodParameters:
Name Flags
cacheDir
ie
protected void writeClassBytes(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.aspectj.weaver.tools.cache.FlatFileCacheBacking.getCacheDirectory:()Ljava/io/File;
astore 3
start local 3 1: new java.io.File
dup
aload 3
aload 1
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 4
start local 4 2: new java.io.FileOutputStream
dup
aload 4
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 5
start local 5 3: aload 5
aload 2
invokevirtual java.io.FileOutputStream.write:([B)V
4: goto 8
StackMap locals: org.aspectj.weaver.tools.cache.FlatFileCacheBacking java.lang.String byte[] java.io.File java.io.File java.io.FileOutputStream
StackMap stack: java.lang.Throwable
5: astore 6
6: aload 5
invokevirtual java.io.FileOutputStream.close:()V
7: aload 6
athrow
8: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.FileOutputStream.close:()V
9: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/aspectj/weaver/tools/cache/FlatFileCacheBacking;
0 10 1 key Ljava/lang/String;
0 10 2 bytes [B
1 10 3 dir Ljava/io/File;
2 10 4 file Ljava/io/File;
3 10 5 out Ljava/io/FileOutputStream;
Exception table:
from to target type
3 5 5 any
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
key
bytes
protected void removeClassBytes(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.aspectj.weaver.tools.cache.FlatFileCacheBacking.getCacheDirectory:()Ljava/io/File;
astore 2
start local 2 1: new java.io.File
dup
aload 2
aload 1
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3
start local 3 2: aload 3
invokevirtual java.io.File.exists:()Z
ifeq 4
aload 3
invokevirtual java.io.File.delete:()Z
ifne 4
3: new java.io.StreamCorruptedException
dup
new java.lang.StringBuilder
dup
ldc "Failed to delete "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.io.File java.io.File
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/aspectj/weaver/tools/cache/FlatFileCacheBacking;
0 5 1 key Ljava/lang/String;
1 5 2 dir Ljava/io/File;
2 5 3 file Ljava/io/File;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
key
}
SourceFile: "FlatFileCacheBacking.java"
NestMembers:
org.aspectj.weaver.tools.cache.FlatFileCacheBacking$1
InnerClasses:
public IndexEntry = org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry of org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
public abstract AsynchronousFileCacheBackingCreator = org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking$AsynchronousFileCacheBackingCreator of org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking
org.aspectj.weaver.tools.cache.FlatFileCacheBacking$1