public class org.aspectj.weaver.tools.cache.DefaultFileCacheBacking extends org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking
  super_class: org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
{
  private final java.util.Map<java.lang.String, org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry> index;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;>;

  private static final java.lang.Object LOCK;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 49
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // java.io.File cacheDir
         0: .line 52
            aload 0 /* this */
            aload 1 /* cacheDir */
            invokespecial org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking.<init>:(Ljava/io/File;)V
         1: .line 53
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.readIndex:()Ljava/util/Map;
            putfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.index:Ljava/util/Map;
         2: .line 54
            return
        end local 1 // java.io.File cacheDir
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0    3     1  cacheDir  Ljava/io/File;
    MethodParameters:
          Name  Flags
      cacheDir  

  public static final org.aspectj.weaver.tools.cache.DefaultFileCacheBacking createBacking(java.io.File);
    descriptor: (Ljava/io/File;)Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.File cacheDir
         0: .line 57
            aload 0 /* cacheDir */
            invokevirtual java.io.File.exists:()Z
            ifne 4
         1: .line 58
            aload 0 /* cacheDir */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 7
         2: .line 59
            new java.lang.StringBuilder
            dup
            ldc "Unable to create cache directory at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* cacheDir */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.error:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            pop
         3: .line 60
            aconst_null
            areturn
         4: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* cacheDir */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 7
         5: .line 63
            new java.lang.StringBuilder
            dup
            ldc "Not a cache directory at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* cacheDir */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.error:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            pop
         6: .line 64
            aconst_null
            areturn
         7: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* cacheDir */
            invokevirtual java.io.File.canWrite:()Z
            ifne 10
         8: .line 68
            new java.lang.StringBuilder
            dup
            ldc "Cache directory is not writable at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* cacheDir */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.aspectj.bridge.MessageUtil.error:(Ljava/lang/String;)Lorg/aspectj/bridge/IMessage;
            pop
         9: .line 69
            aconst_null
            areturn
        10: .line 71
      StackMap locals:
      StackMap stack:
            new org.aspectj.weaver.tools.cache.DefaultFileCacheBacking
            dup
            aload 0 /* cacheDir */
            invokespecial org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.<init>:(Ljava/io/File;)V
            areturn
        end local 0 // java.io.File cacheDir
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0  cacheDir  Ljava/io/File;
    MethodParameters:
          Name  Flags
      cacheDir  

  protected java.util.Map<java.lang.String, org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry> getIndex();
    descriptor: ()Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
         0: .line 76
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.index:Ljava/util/Map;
            areturn
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;>;

  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 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // java.io.File cacheDir
        start local 2 // org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry ie
         0: .line 81
            new java.io.File
            dup
            aload 1 /* cacheDir */
            aload 2 /* ie */
            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 /* cacheEntry */
        start local 3 // java.io.File cacheEntry
         1: .line 82
            aload 2 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.ignored:Z
            ifne 2
            aload 3 /* cacheEntry */
            invokevirtual java.io.File.canRead:()Z
            ifeq 3
         2: .line 83
      StackMap locals: java.io.File
      StackMap stack:
            aload 2 /* ie */
            areturn
         3: .line 85
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.io.File cacheEntry
        end local 2 // org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry ie
        end local 1 // java.io.File cacheDir
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            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        

  private void removeIndexEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // java.lang.String key
         0: .line 90
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 91
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.index:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 92
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.writeIndex:()V
         3: .line 90
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.lang.String java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String key
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0    8     1   key  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
      Name  Flags
      key   

  private void addIndexEntry(org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry);
    descriptor: (Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry ie
         0: .line 97
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 98
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.index:Ljava/util/Map;
            aload 1 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.key:Ljava/lang/String;
            aload 1 /* ie */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 99
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.writeIndex:()V
         3: .line 97
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 101
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry ie
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0    8     1    ie  Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
      Name  Flags
      ie    

  protected java.util.Map<java.lang.String, org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry> readIndex();
    descriptor: ()Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
         0: .line 105
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 106
            aload 0 /* this */
            invokespecial org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking.readIndex:()Ljava/util/Map;
            aload 1
            monitorexit
         2: areturn
         3: .line 105
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;>;

  protected void writeIndex();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
         0: .line 112
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 113
            aload 0 /* this */
            invokespecial org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking.writeIndex:()V
         2: .line 112
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 115
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
         0: .line 118
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.getCacheDirectory:()Ljava/io/File;
            astore 1 /* cacheDir */
        start local 1 // java.io.File cacheDir
         1: .line 119
            iconst_0
            istore 2 /* numDeleted */
        start local 2 // int numDeleted
         2: .line 120
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 121
            aload 1 /* cacheDir */
            invokestatic org.aspectj.util.FileUtil.deleteContents:(Ljava/io/File;)I
            istore 2 /* numDeleted */
         4: .line 120
            aload 3
            monitorexit
         5: goto 8
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.io.File int java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
         8: .line 124
      StackMap locals:
      StackMap stack:
            iload 2 /* numDeleted */
            ifle 10
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            ifnull 10
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 10
         9: .line 125
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            new java.lang.StringBuilder
            dup
            ldc "clear("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* cacheDir */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ") deleted"
            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
        10: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numDeleted
        end local 1 // java.io.File cacheDir
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            1   11     1    cacheDir  Ljava/io/File;
            2   11     2  numDeleted  I
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any

  public static org.aspectj.weaver.tools.cache.CacheBacking createBacking(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/aspectj/weaver/tools/cache/CacheBacking;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String scope
         0: .line 130
            ldc "aj.weaving.cache.dir"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* cache */
        start local 1 // java.lang.String cache
         1: .line 131
            aload 1 /* cache */
            ifnonnull 3
         2: .line 132
            aconst_null
            areturn
         3: .line 135
      StackMap locals: java.lang.String
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* cache */
            aload 0 /* scope */
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* cacheDir */
        start local 2 // java.io.File cacheDir
         4: .line 136
            aload 2 /* cacheDir */
            invokestatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.createBacking:(Ljava/io/File;)Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            areturn
        end local 2 // java.io.File cacheDir
        end local 1 // java.lang.String cache
        end local 0 // java.lang.String scope
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0     scope  Ljava/lang/String;
            1    5     1     cache  Ljava/lang/String;
            4    5     2  cacheDir  Ljava/io/File;
    MethodParameters:
       Name  Flags
      scope  

  public java.lang.String[] getKeys(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // java.lang.String regex
         0: .line 141
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.getCacheDirectory:()Ljava/io/File;
            astore 2 /* cacheDirectory */
        start local 2 // java.io.File cacheDirectory
         1: .line 142
            aload 2 /* cacheDirectory */
            new org.aspectj.weaver.tools.cache.DefaultFileCacheBacking$1
            dup
            aload 0 /* this */
            aload 1 /* regex */
            invokespecial org.aspectj.weaver.tools.cache.DefaultFileCacheBacking$1.<init>:(Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;Ljava/lang/String;)V
            invokevirtual java.io.File.listFiles:(Ljava/io/FilenameFilter;)[Ljava/io/File;
            astore 3 /* files */
        start local 3 // java.io.File[] files
         2: .line 150
            aload 3 /* files */
            invokestatic org.aspectj.util.LangUtil.isEmpty:([Ljava/lang/Object;)Z
            ifeq 4
         3: .line 151
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.EMPTY_KEYS:[Ljava/lang/String;
            areturn
         4: .line 153
      StackMap locals: java.io.File java.io.File[]
      StackMap stack:
            aload 3 /* files */
            arraylength
            anewarray java.lang.String
            astore 4 /* keys */
        start local 4 // java.lang.String[] keys
         5: .line 154
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 9
         7: .line 155
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 4 /* keys */
            iload 5 /* i */
            aload 3 /* files */
            iload 5 /* i */
            aaload
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            aastore
         8: .line 154
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 3 /* files */
            arraylength
            if_icmplt 7
        end local 5 // int i
        10: .line 157
            aload 4 /* keys */
            areturn
        end local 4 // java.lang.String[] keys
        end local 3 // java.io.File[] files
        end local 2 // java.io.File cacheDirectory
        end local 1 // java.lang.String regex
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0   11     1           regex  Ljava/lang/String;
            1   11     2  cacheDirectory  Ljava/io/File;
            2   11     3           files  [Ljava/io/File;
            5   11     4            keys  [Ljava/lang/String;
            6   10     5               i  I
    MethodParameters:
       Name  Flags
      regex  final

  public org.aspectj.weaver.tools.cache.CachedClassEntry get(org.aspectj.weaver.tools.cache.CachedClassReference, byte[]);
    descriptor: (Lorg/aspectj/weaver/tools/cache/CachedClassReference;[B)Lorg/aspectj/weaver/tools/cache/CachedClassEntry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // org.aspectj.weaver.tools.cache.CachedClassReference ref
        start local 2 // byte[] originalBytes
         0: .line 161
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.getCacheDirectory:()Ljava/io/File;
            astore 3 /* cacheDirectory */
        start local 3 // java.io.File cacheDirectory
         1: .line 162
            aload 1 /* ref */
            invokevirtual org.aspectj.weaver.tools.cache.CachedClassReference.getKey:()Ljava/lang/String;
            astore 4 /* refKey */
        start local 4 // java.lang.String refKey
         2: .line 163
            new java.io.File
            dup
            aload 3 /* cacheDirectory */
            aload 4 /* refKey */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 5 /* cacheFile */
        start local 5 // java.io.File cacheFile
         3: .line 164
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.index:Ljava/util/Map;
            aload 4 /* refKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry
            astore 6 /* ie */
        start local 6 // org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry ie
         4: .line 165
            aload 6 /* ie */
            ifnonnull 7
         5: .line 167
            aload 0 /* this */
            aload 5 /* cacheFile */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.delete:(Ljava/io/File;)V
         6: .line 168
            aconst_null
            areturn
         7: .line 172
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking org.aspectj.weaver.tools.cache.CachedClassReference byte[] java.io.File java.lang.String java.io.File org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry
      StackMap stack:
            aload 2 /* originalBytes */
            invokestatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.crc:([B)J
            aload 6 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.crcClass:J
            lcmp
            ifeq 10
         8: .line 173
            aload 0 /* this */
            aload 5 /* cacheFile */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.delete:(Ljava/io/File;)V
         9: .line 174
            aconst_null
            areturn
        10: .line 177
      StackMap locals:
      StackMap stack:
            aload 6 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.ignored:Z
            ifeq 12
        11: .line 178
            new org.aspectj.weaver.tools.cache.CachedClassEntry
            dup
            aload 1 /* ref */
            getstatic org.aspectj.weaver.tools.cache.WeavedClassCache.ZERO_BYTES:[B
            getstatic org.aspectj.weaver.tools.cache.CachedClassEntry$EntryType.IGNORED:Lorg/aspectj/weaver/tools/cache/CachedClassEntry$EntryType;
            invokespecial org.aspectj.weaver.tools.cache.CachedClassEntry.<init>:(Lorg/aspectj/weaver/tools/cache/CachedClassReference;[BLorg/aspectj/weaver/tools/cache/CachedClassEntry$EntryType;)V
            areturn
        12: .line 181
      StackMap locals:
      StackMap stack:
            aload 5 /* cacheFile */
            invokevirtual java.io.File.canRead:()Z
            ifeq 18
        13: .line 182
            aload 0 /* this */
            aload 5 /* cacheFile */
            aload 6 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.crcWeaved:J
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.read:(Ljava/io/File;J)[B
            astore 7 /* bytes */
        start local 7 // byte[] bytes
        14: .line 183
            aload 7 /* bytes */
            ifnull 18
        15: .line 184
            aload 6 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.generated:Z
            ifne 17
        16: .line 185
            new org.aspectj.weaver.tools.cache.CachedClassEntry
            dup
            aload 1 /* ref */
            aload 7 /* bytes */
            getstatic org.aspectj.weaver.tools.cache.CachedClassEntry$EntryType.WEAVED:Lorg/aspectj/weaver/tools/cache/CachedClassEntry$EntryType;
            invokespecial org.aspectj.weaver.tools.cache.CachedClassEntry.<init>:(Lorg/aspectj/weaver/tools/cache/CachedClassReference;[BLorg/aspectj/weaver/tools/cache/CachedClassEntry$EntryType;)V
            areturn
        17: .line 187
      StackMap locals: byte[]
      StackMap stack:
            new org.aspectj.weaver.tools.cache.CachedClassEntry
            dup
            aload 1 /* ref */
            aload 7 /* bytes */
            getstatic org.aspectj.weaver.tools.cache.CachedClassEntry$EntryType.GENERATED:Lorg/aspectj/weaver/tools/cache/CachedClassEntry$EntryType;
            invokespecial org.aspectj.weaver.tools.cache.CachedClassEntry.<init>:(Lorg/aspectj/weaver/tools/cache/CachedClassReference;[BLorg/aspectj/weaver/tools/cache/CachedClassEntry$EntryType;)V
            areturn
        end local 7 // byte[] bytes
        18: .line 192
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry ie
        end local 5 // java.io.File cacheFile
        end local 4 // java.lang.String refKey
        end local 3 // java.io.File cacheDirectory
        end local 2 // byte[] originalBytes
        end local 1 // org.aspectj.weaver.tools.cache.CachedClassReference ref
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0   19     1             ref  Lorg/aspectj/weaver/tools/cache/CachedClassReference;
            0   19     2   originalBytes  [B
            1   19     3  cacheDirectory  Ljava/io/File;
            2   19     4          refKey  Ljava/lang/String;
            3   19     5       cacheFile  Ljava/io/File;
            4   19     6              ie  Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;
           14   18     7           bytes  [B
    MethodParameters:
               Name  Flags
      ref            
      originalBytes  

  public void put(org.aspectj.weaver.tools.cache.CachedClassEntry, byte[]);
    descriptor: (Lorg/aspectj/weaver/tools/cache/CachedClassEntry;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // org.aspectj.weaver.tools.cache.CachedClassEntry entry
        start local 2 // byte[] originalBytes
         0: .line 196
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.getCacheDirectory:()Ljava/io/File;
            astore 3 /* cacheDirectory */
        start local 3 // java.io.File cacheDirectory
         1: .line 197
            aload 1 /* entry */
            invokevirtual org.aspectj.weaver.tools.cache.CachedClassEntry.getKey:()Ljava/lang/String;
            astore 4 /* refKey */
        start local 4 // java.lang.String refKey
         2: .line 198
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.index:Ljava/util/Map;
            aload 4 /* refKey */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry
            astore 5 /* ie */
        start local 5 // org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry ie
         3: .line 199
            new java.io.File
            dup
            aload 3 /* cacheDirectory */
            aload 4 /* refKey */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 6 /* cacheFile */
        start local 6 // java.io.File cacheFile
         4: .line 202
            aload 5 /* ie */
            ifnull 9
         5: .line 203
            aload 5 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.ignored:Z
            aload 1 /* entry */
            invokevirtual org.aspectj.weaver.tools.cache.CachedClassEntry.isIgnored:()Z
            if_icmpne 6
            aload 5 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.generated:Z
            aload 1 /* entry */
            invokevirtual org.aspectj.weaver.tools.cache.CachedClassEntry.isGenerated:()Z
            if_icmpne 6
            aload 2 /* originalBytes */
            invokestatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.crc:([B)J
            aload 5 /* ie */
            getfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.crcClass:J
            lcmp
            ifeq 9
         6: .line 204
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking org.aspectj.weaver.tools.cache.CachedClassEntry byte[] java.io.File java.lang.String org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry java.io.File
      StackMap stack:
            aload 0 /* this */
            aload 6 /* cacheFile */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.delete:(Ljava/io/File;)V
         7: .line 205
            iconst_1
            istore 7 /* writeEntryBytes */
        start local 7 // boolean writeEntryBytes
         8: .line 206
            goto 12
        end local 7 // boolean writeEntryBytes
         9: .line 207
      StackMap locals:
      StackMap stack:
            aload 6 /* cacheFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 10
            iconst_0
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_1
      StackMap locals:
      StackMap stack: int
        11: istore 7 /* writeEntryBytes */
        start local 7 // boolean writeEntryBytes
        12: .line 210
      StackMap locals: int
      StackMap stack:
            iload 7 /* writeEntryBytes */
            ifeq 17
        13: .line 211
            aload 1 /* entry */
            aload 2 /* originalBytes */
            invokestatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.createIndexEntry:(Lorg/aspectj/weaver/tools/cache/CachedClassEntry;[B)Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;
            astore 5 /* ie */
        14: .line 212
            aload 1 /* entry */
            invokevirtual org.aspectj.weaver.tools.cache.CachedClassEntry.isIgnored:()Z
            ifne 16
        15: .line 213
            aload 5 /* ie */
            aload 0 /* this */
            aload 6 /* cacheFile */
            aload 1 /* entry */
            invokevirtual org.aspectj.weaver.tools.cache.CachedClassEntry.getBytes:()[B
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.write:(Ljava/io/File;[B)J
            putfield org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry.crcWeaved:J
        16: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* ie */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.addIndexEntry:(Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;)V
        17: .line 217
      StackMap locals:
      StackMap stack:
            return
        end local 7 // boolean writeEntryBytes
        end local 6 // java.io.File cacheFile
        end local 5 // org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry ie
        end local 4 // java.lang.String refKey
        end local 3 // java.io.File cacheDirectory
        end local 2 // byte[] originalBytes
        end local 1 // org.aspectj.weaver.tools.cache.CachedClassEntry entry
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0   18     1            entry  Lorg/aspectj/weaver/tools/cache/CachedClassEntry;
            0   18     2    originalBytes  [B
            1   18     3   cacheDirectory  Ljava/io/File;
            2   18     4           refKey  Ljava/lang/String;
            3   18     5               ie  Lorg/aspectj/weaver/tools/cache/AbstractIndexedFileCacheBacking$IndexEntry;
            4   18     6        cacheFile  Ljava/io/File;
            8    9     7  writeEntryBytes  Z
           12   18     7  writeEntryBytes  Z
    MethodParameters:
               Name  Flags
      entry          
      originalBytes  

  public void remove(org.aspectj.weaver.tools.cache.CachedClassReference);
    descriptor: (Lorg/aspectj/weaver/tools/cache/CachedClassReference;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // org.aspectj.weaver.tools.cache.CachedClassReference ref
         0: .line 220
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.getCacheDirectory:()Ljava/io/File;
            astore 2 /* cacheDirectory */
        start local 2 // java.io.File cacheDirectory
         1: .line 221
            aload 1 /* ref */
            invokevirtual org.aspectj.weaver.tools.cache.CachedClassReference.getKey:()Ljava/lang/String;
            astore 3 /* refKey */
        start local 3 // java.lang.String refKey
         2: .line 222
            new java.io.File
            dup
            aload 2 /* cacheDirectory */
            aload 3 /* refKey */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 4 /* cacheFile */
        start local 4 // java.io.File cacheFile
         3: .line 223
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         4: .line 224
            aload 0 /* this */
            aload 3 /* refKey */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.removeIndexEntry:(Ljava/lang/String;)V
         5: .line 225
            aload 0 /* this */
            aload 4 /* cacheFile */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.delete:(Ljava/io/File;)V
         6: .line 223
            aload 5
            monitorexit
         7: goto 10
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking org.aspectj.weaver.tools.cache.CachedClassReference java.io.File java.lang.String java.io.File java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 5
            monitorexit
         9: athrow
        10: .line 227
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.io.File cacheFile
        end local 3 // java.lang.String refKey
        end local 2 // java.io.File cacheDirectory
        end local 1 // org.aspectj.weaver.tools.cache.CachedClassReference ref
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0   11     1             ref  Lorg/aspectj/weaver/tools/cache/CachedClassReference;
            1   11     2  cacheDirectory  Ljava/io/File;
            2   11     3          refKey  Ljava/lang/String;
            3   11     4       cacheFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           4     7       8  any
           8     9       8  any
    MethodParameters:
      Name  Flags
      ref   

  protected void delete(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // java.io.File file
         0: .line 231
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 232
            aload 0 /* this */
            aload 1 /* file */
            invokespecial org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking.delete:(Ljava/io/File;)V
         2: .line 231
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.io.File java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.File file
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0    7     1  file  Ljava/io/File;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
      Name  Flags
      file  

  protected byte[] read(java.io.File, long);
    descriptor: (Ljava/io/File;J)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // java.io.File file
        start local 2 // long expectedCRC
         0: .line 237
            aconst_null
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         1: .line 238
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         2: .line 239
            aconst_null
            astore 6 /* fis */
        start local 6 // java.io.FileInputStream fis
         3: .line 241
            new java.io.FileInputStream
            dup
            aload 1 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 6 /* fis */
         4: .line 242
            aload 6 /* fis */
            invokestatic org.aspectj.util.FileUtil.readAsByteArray:(Ljava/io/InputStream;)[B
            astore 4 /* bytes */
         5: .line 243
            goto 16
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.io.File long byte[] java.lang.Object java.io.FileInputStream
      StackMap stack: java.lang.Exception
         6: astore 7 /* e */
        start local 7 // java.lang.Exception e
         7: .line 244
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            ifnull 12
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 12
         8: .line 245
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            new java.lang.StringBuilder
            dup
            ldc "read("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* file */
            invokevirtual java.io.File.getAbsolutePath:()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;
         9: .line 246
            ldc " failed ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* e */
            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;
        10: .line 247
            ldc " to read contents: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 7 /* e */
        11: .line 245
            invokeinterface org.aspectj.weaver.tools.Trace.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 7 // java.lang.Exception e
        12: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* fis */
            aload 1 /* file */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.close:(Ljava/io/InputStream;Ljava/io/File;)V
            goto 17
        13: .line 249
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        14: .line 250
            aload 0 /* this */
            aload 6 /* fis */
            aload 1 /* file */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.close:(Ljava/io/InputStream;Ljava/io/File;)V
        15: .line 251
            aload 8
            athrow
        16: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* fis */
            aload 1 /* file */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.close:(Ljava/io/InputStream;Ljava/io/File;)V
        17: .line 254
      StackMap locals:
      StackMap stack:
            aload 4 /* bytes */
            ifnull 18
            aload 4 /* bytes */
            invokestatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.crc:([B)J
            lload 2 /* expectedCRC */
            lcmp
            ifeq 21
        18: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.delete:(Ljava/io/File;)V
        19: .line 256
            aload 5
            monitorexit
        20: aconst_null
            areturn
        end local 6 // java.io.FileInputStream fis
        21: .line 238
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        22: goto 25
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: aload 5
            monitorexit
        24: athrow
        25: .line 260
      StackMap locals:
      StackMap stack:
            aload 4 /* bytes */
            areturn
        end local 4 // byte[] bytes
        end local 2 // long expectedCRC
        end local 1 // java.io.File file
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0   26     1         file  Ljava/io/File;
            0   26     2  expectedCRC  J
            1   26     4        bytes  [B
            3   21     6          fis  Ljava/io/FileInputStream;
            7   12     7            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Exception
           3    12      13  any
           2    20      23  any
          21    22      23  any
          23    24      23  any
    MethodParameters:
             Name  Flags
      file         
      expectedCRC  

  protected long write(java.io.File, byte[]);
    descriptor: (Ljava/io/File;[B)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
        start local 1 // java.io.File file
        start local 2 // byte[] bytes
         0: .line 264
            getstatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.LOCK:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 265
            aload 1 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 4
         2: .line 266
            aload 3
            monitorexit
         3: ldc -1
            lreturn
         4: .line 268
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            astore 4 /* out */
        start local 4 // java.io.OutputStream out
         5: .line 270
            new java.io.FileOutputStream
            dup
            aload 1 /* file */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 4 /* out */
         6: .line 271
            aload 4 /* out */
            aload 2 /* bytes */
            invokevirtual java.io.OutputStream.write:([B)V
         7: .line 272
            goto 20
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.io.File byte[] java.lang.Object java.io.OutputStream
      StackMap stack: java.lang.Exception
         8: astore 5 /* e */
        start local 5 // java.lang.Exception e
         9: .line 273
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            ifnull 14
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 14
        10: .line 274
            aload 0 /* this */
            getfield org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.logger:Lorg/aspectj/weaver/tools/Trace;
            new java.lang.StringBuilder
            dup
            ldc "write("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* file */
            invokevirtual java.io.File.getAbsolutePath:()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;
        11: .line 275
            ldc " failed ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            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;
        12: .line 276
            ldc " to write contents: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* e */
        13: .line 274
            invokeinterface org.aspectj.weaver.tools.Trace.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        14: .line 279
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.delete:(Ljava/io/File;)V
        15: .line 282
            aload 0 /* this */
            aload 4 /* out */
            aload 1 /* file */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.close:(Ljava/io/OutputStream;Ljava/io/File;)V
            aload 3
            monitorexit
        16: .line 280
            ldc -1
            lreturn
        end local 5 // java.lang.Exception e
        17: .line 281
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.io.File byte[] java.lang.Object java.io.OutputStream
      StackMap stack: java.lang.Throwable
            astore 6
        18: .line 282
            aload 0 /* this */
            aload 4 /* out */
            aload 1 /* file */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.close:(Ljava/io/OutputStream;Ljava/io/File;)V
        19: .line 283
            aload 6
            athrow
        20: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* out */
            aload 1 /* file */
            invokevirtual org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.close:(Ljava/io/OutputStream;Ljava/io/File;)V
        21: .line 285
            aload 2 /* bytes */
            invokestatic org.aspectj.weaver.tools.cache.DefaultFileCacheBacking.crc:([B)J
            aload 3
            monitorexit
        22: lreturn
        end local 4 // java.io.OutputStream out
        23: .line 264
      StackMap locals: org.aspectj.weaver.tools.cache.DefaultFileCacheBacking java.io.File byte[] java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        24: athrow
        end local 2 // byte[] bytes
        end local 1 // java.io.File file
        end local 0 // org.aspectj.weaver.tools.cache.DefaultFileCacheBacking this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   25     0   this  Lorg/aspectj/weaver/tools/cache/DefaultFileCacheBacking;
            0   25     1   file  Ljava/io/File;
            0   25     2  bytes  [B
            5   23     4    out  Ljava/io/OutputStream;
            9   17     5      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     7       8  Class java.lang.Exception
           5    15      17  any
           1     3      23  any
           4    16      23  any
          17    22      23  any
          23    24      23  any
    MethodParameters:
       Name  Flags
      file   
      bytes  
}
SourceFile: "DefaultFileCacheBacking.java"
NestMembers:
  org.aspectj.weaver.tools.cache.DefaultFileCacheBacking$1
InnerClasses:
  public IndexEntry = org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking$IndexEntry of org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
  final EntryType = org.aspectj.weaver.tools.cache.CachedClassEntry$EntryType of org.aspectj.weaver.tools.cache.CachedClassEntry
  org.aspectj.weaver.tools.cache.DefaultFileCacheBacking$1