public class org.apache.lucene.index.PersistentSnapshotDeletionPolicy extends org.apache.lucene.index.SnapshotDeletionPolicy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.index.PersistentSnapshotDeletionPolicy
  super_class: org.apache.lucene.index.SnapshotDeletionPolicy
{
  public static final java.lang.String SNAPSHOTS_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "snapshots_"

  private static final int VERSION_START;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int VERSION_CURRENT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final java.lang.String CODEC_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "snapshots"

  private long nextWriteGen;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final org.apache.lucene.store.Directory dir;
    descriptor: Lorg/apache/lucene/store/Directory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.lucene.index.IndexDeletionPolicy, org.apache.lucene.store.Directory);
    descriptor: (Lorg/apache/lucene/index/IndexDeletionPolicy;Lorg/apache/lucene/store/Directory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
        start local 1 // org.apache.lucene.index.IndexDeletionPolicy primary
        start local 2 // org.apache.lucene.store.Directory dir
         0: .line 82
            aload 0 /* this */
            aload 1 /* primary */
            aload 2 /* dir */
            getstatic org.apache.lucene.index.IndexWriterConfig$OpenMode.CREATE_OR_APPEND:Lorg/apache/lucene/index/IndexWriterConfig$OpenMode;
            invokespecial org.apache.lucene.index.PersistentSnapshotDeletionPolicy.<init>:(Lorg/apache/lucene/index/IndexDeletionPolicy;Lorg/apache/lucene/store/Directory;Lorg/apache/lucene/index/IndexWriterConfig$OpenMode;)V
         1: .line 83
            return
        end local 2 // org.apache.lucene.store.Directory dir
        end local 1 // org.apache.lucene.index.IndexDeletionPolicy primary
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;
            0    2     1  primary  Lorg/apache/lucene/index/IndexDeletionPolicy;
            0    2     2      dir  Lorg/apache/lucene/store/Directory;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      primary  
      dir      

  public void <init>(org.apache.lucene.index.IndexDeletionPolicy, org.apache.lucene.store.Directory, org.apache.lucene.index.IndexWriterConfig$OpenMode);
    descriptor: (Lorg/apache/lucene/index/IndexDeletionPolicy;Lorg/apache/lucene/store/Directory;Lorg/apache/lucene/index/IndexWriterConfig$OpenMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
        start local 1 // org.apache.lucene.index.IndexDeletionPolicy primary
        start local 2 // org.apache.lucene.store.Directory dir
        start local 3 // org.apache.lucene.index.IndexWriterConfig$OpenMode mode
         0: .line 103
            aload 0 /* this */
            aload 1 /* primary */
            invokespecial org.apache.lucene.index.SnapshotDeletionPolicy.<init>:(Lorg/apache/lucene/index/IndexDeletionPolicy;)V
         1: .line 105
            aload 0 /* this */
            aload 2 /* dir */
            putfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
         2: .line 107
            aload 3 /* mode */
            getstatic org.apache.lucene.index.IndexWriterConfig$OpenMode.CREATE:Lorg/apache/lucene/index/IndexWriterConfig$OpenMode;
            if_acmpne 4
         3: .line 108
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.PersistentSnapshotDeletionPolicy.clearPriorSnapshots:()V
         4: .line 111
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy org.apache.lucene.index.IndexDeletionPolicy org.apache.lucene.store.Directory org.apache.lucene.index.IndexWriterConfig$OpenMode
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.PersistentSnapshotDeletionPolicy.loadPriorSnapshots:()V
         5: .line 113
            aload 3 /* mode */
            getstatic org.apache.lucene.index.IndexWriterConfig$OpenMode.APPEND:Lorg/apache/lucene/index/IndexWriterConfig$OpenMode;
            if_acmpne 7
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
            lconst_0
            lcmp
            ifne 7
         6: .line 114
            new java.lang.IllegalStateException
            dup
            ldc "no snapshots stored in this directory"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 116
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.lucene.index.IndexWriterConfig$OpenMode mode
        end local 2 // org.apache.lucene.store.Directory dir
        end local 1 // org.apache.lucene.index.IndexDeletionPolicy primary
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;
            0    8     1  primary  Lorg/apache/lucene/index/IndexDeletionPolicy;
            0    8     2      dir  Lorg/apache/lucene/store/Directory;
            0    8     3     mode  Lorg/apache/lucene/index/IndexWriterConfig$OpenMode;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      primary  
      dir      
      mode     

  public synchronized org.apache.lucene.index.IndexCommit snapshot();
    descriptor: ()Lorg/apache/lucene/index/IndexCommit;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
         0: .line 126
            aload 0 /* this */
            invokespecial org.apache.lucene.index.SnapshotDeletionPolicy.snapshot:()Lorg/apache/lucene/index/IndexCommit;
            astore 1 /* ic */
        start local 1 // org.apache.lucene.index.IndexCommit ic
         1: .line 127
            iconst_0
            istore 2 /* success */
        start local 2 // boolean success
         2: .line 129
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.PersistentSnapshotDeletionPolicy.persist:()V
         3: .line 130
            iconst_1
            istore 2 /* success */
         4: .line 131
            goto 11
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy org.apache.lucene.index.IndexCommit int
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 132
            iload 2 /* success */
            ifne 10
         7: .line 134
            aload 0 /* this */
            aload 1 /* ic */
            invokespecial org.apache.lucene.index.SnapshotDeletionPolicy.release:(Lorg/apache/lucene/index/IndexCommit;)V
         8: .line 135
            goto 10
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy org.apache.lucene.index.IndexCommit int java.lang.Throwable
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 139
      StackMap locals:
      StackMap stack:
            aload 3
            athrow
        11: .line 132
      StackMap locals:
      StackMap stack:
            iload 2 /* success */
            ifne 15
        12: .line 134
            aload 0 /* this */
            aload 1 /* ic */
            invokespecial org.apache.lucene.index.SnapshotDeletionPolicy.release:(Lorg/apache/lucene/index/IndexCommit;)V
        13: .line 135
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Exception
        14: pop
        15: .line 140
      StackMap locals:
      StackMap stack:
            aload 1 /* ic */
            areturn
        end local 2 // boolean success
        end local 1 // org.apache.lucene.index.IndexCommit ic
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;
            1   16     1       ic  Lorg/apache/lucene/index/IndexCommit;
            2   16     2  success  Z
      Exception table:
        from    to  target  type
           2     5       5  any
           7     8       9  Class java.lang.Exception
          12    13      14  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  public synchronized void release(org.apache.lucene.index.IndexCommit);
    descriptor: (Lorg/apache/lucene/index/IndexCommit;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
        start local 1 // org.apache.lucene.index.IndexCommit commit
         0: .line 151
            aload 0 /* this */
            aload 1 /* commit */
            invokespecial org.apache.lucene.index.SnapshotDeletionPolicy.release:(Lorg/apache/lucene/index/IndexCommit;)V
         1: .line 152
            iconst_0
            istore 2 /* success */
        start local 2 // boolean success
         2: .line 154
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.PersistentSnapshotDeletionPolicy.persist:()V
         3: .line 155
            iconst_1
            istore 2 /* success */
         4: .line 156
            goto 11
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy org.apache.lucene.index.IndexCommit int
      StackMap stack: java.lang.Throwable
         5: astore 3
         6: .line 157
            iload 2 /* success */
            ifne 10
         7: .line 159
            aload 0 /* this */
            aload 1 /* commit */
            invokevirtual org.apache.lucene.index.PersistentSnapshotDeletionPolicy.incRef:(Lorg/apache/lucene/index/IndexCommit;)V
         8: .line 160
            goto 10
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy org.apache.lucene.index.IndexCommit int java.lang.Throwable
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 164
      StackMap locals:
      StackMap stack:
            aload 3
            athrow
        11: .line 157
      StackMap locals:
      StackMap stack:
            iload 2 /* success */
            ifne 15
        12: .line 159
            aload 0 /* this */
            aload 1 /* commit */
            invokevirtual org.apache.lucene.index.PersistentSnapshotDeletionPolicy.incRef:(Lorg/apache/lucene/index/IndexCommit;)V
        13: .line 160
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Exception
        14: pop
        15: .line 165
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean success
        end local 1 // org.apache.lucene.index.IndexCommit commit
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;
            0   16     1   commit  Lorg/apache/lucene/index/IndexCommit;
            2   16     2  success  Z
      Exception table:
        from    to  target  type
           2     5       5  any
           7     8       9  Class java.lang.Exception
          12    13      14  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      commit  

  public synchronized void release(long);
    descriptor: (J)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
        start local 1 // long gen
         0: .line 175
            aload 0 /* this */
            lload 1 /* gen */
            invokespecial org.apache.lucene.index.SnapshotDeletionPolicy.releaseGen:(J)V
         1: .line 176
            aload 0 /* this */
            invokevirtual org.apache.lucene.index.PersistentSnapshotDeletionPolicy.persist:()V
         2: .line 177
            return
        end local 1 // long gen
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;
            0    3     1   gen  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      gen   

  private synchronized void persist();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
         0: .line 180
            new java.lang.StringBuilder
            dup
            ldc "snapshots_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* fileName */
        start local 1 // java.lang.String fileName
         1: .line 181
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            aload 1 /* fileName */
            getstatic org.apache.lucene.store.IOContext.DEFAULT:Lorg/apache/lucene/store/IOContext;
            invokevirtual org.apache.lucene.store.Directory.createOutput:(Ljava/lang/String;Lorg/apache/lucene/store/IOContext;)Lorg/apache/lucene/store/IndexOutput;
            astore 2 /* out */
        start local 2 // org.apache.lucene.store.IndexOutput out
         2: .line 182
            iconst_0
            istore 3 /* success */
        start local 3 // boolean success
         3: .line 184
            aload 2 /* out */
            ldc "snapshots"
            iconst_0
            invokestatic org.apache.lucene.codecs.CodecUtil.writeHeader:(Lorg/apache/lucene/store/DataOutput;Ljava/lang/String;I)V
         4: .line 185
            aload 2 /* out */
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.refCounts:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
         5: .line 186
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.refCounts:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy java.lang.String org.apache.lucene.store.IndexOutput int top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* ent */
        start local 4 // java.util.Map$Entry ent
         7: .line 187
            aload 2 /* out */
            aload 4 /* ent */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual org.apache.lucene.store.IndexOutput.writeVLong:(J)V
         8: .line 188
            aload 2 /* out */
            aload 4 /* ent */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual org.apache.lucene.store.IndexOutput.writeVInt:(I)V
        end local 4 // java.util.Map$Entry ent
         9: .line 186
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 190
            iconst_1
            istore 3 /* success */
        11: .line 191
            goto 20
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy java.lang.String org.apache.lucene.store.IndexOutput int
      StackMap stack: java.lang.Throwable
        12: astore 6
        13: .line 192
            iload 3 /* success */
            ifne 17
            iconst_1
            anewarray java.io.Closeable
            dup
            iconst_0
        14: .line 193
            aload 2 /* out */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.closeWhileHandlingException:([Ljava/io/Closeable;)V
        15: .line 194
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* fileName */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        16: .line 195
            goto 19
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy java.lang.String org.apache.lucene.store.IndexOutput int top top java.lang.Throwable
      StackMap stack:
        17: iconst_1
            anewarray java.io.Closeable
            dup
            iconst_0
        18: .line 196
            aload 2 /* out */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.close:([Ljava/io/Closeable;)V
        19: .line 198
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        20: .line 192
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy java.lang.String org.apache.lucene.store.IndexOutput int
      StackMap stack:
            iload 3 /* success */
            ifne 24
            iconst_1
            anewarray java.io.Closeable
            dup
            iconst_0
        21: .line 193
            aload 2 /* out */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.closeWhileHandlingException:([Ljava/io/Closeable;)V
        22: .line 194
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* fileName */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        23: .line 195
            goto 26
      StackMap locals:
      StackMap stack:
        24: iconst_1
            anewarray java.io.Closeable
            dup
            iconst_0
        25: .line 196
            aload 2 /* out */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.close:([Ljava/io/Closeable;)V
        26: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            aload 1 /* fileName */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokevirtual org.apache.lucene.store.Directory.sync:(Ljava/util/Collection;)V
        27: .line 202
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
            lconst_0
            lcmp
            ifle 30
        28: .line 203
            new java.lang.StringBuilder
            dup
            ldc "snapshots_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
            lconst_1
            lsub
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* lastSaveFile */
        start local 4 // java.lang.String lastSaveFile
        29: .line 205
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 4 /* lastSaveFile */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        end local 4 // java.lang.String lastSaveFile
        30: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
            lconst_1
            ladd
            putfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
        31: .line 209
            return
        end local 3 // boolean success
        end local 2 // org.apache.lucene.store.IndexOutput out
        end local 1 // java.lang.String fileName
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   32     0          this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;
            1   32     1      fileName  Ljava/lang/String;
            2   32     2           out  Lorg/apache/lucene/store/IndexOutput;
            3   32     3       success  Z
            7    9     4           ent  Ljava/util/Map$Entry<Ljava/lang/Long;Ljava/lang/Integer;>;
           29   30     4  lastSaveFile  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3    12      12  any
    Exceptions:
      throws java.io.IOException

  private synchronized void clearPriorSnapshots();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
         0: .line 212
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            invokevirtual org.apache.lucene.store.Directory.listAll:()[Ljava/lang/String;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy top int int java.lang.String[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* file */
        start local 1 // java.lang.String file
         2: .line 213
            aload 1 /* file */
            ldc "snapshots_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 214
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            aload 1 /* file */
            invokevirtual org.apache.lucene.store.Directory.deleteFile:(Ljava/lang/String;)V
        end local 1 // java.lang.String file
         4: .line 212
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 217
            return
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;
            2    4     1  file  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  public java.lang.String getLastSaveFile();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
         0: .line 222
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
            lconst_0
            lcmp
            ifne 2
         1: .line 223
            aconst_null
            areturn
         2: .line 225
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "snapshots_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
            lconst_1
            lsub
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;

  private synchronized void loadPriorSnapshots();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=19, args_size=1
        start local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
         0: .line 236
            ldc -1
            lstore 1 /* genLoaded */
        start local 1 // long genLoaded
         1: .line 237
            aconst_null
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
         2: .line 238
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* snapshotFiles */
        start local 4 // java.util.List snapshotFiles
         3: .line 239
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            invokevirtual org.apache.lucene.store.Directory.listAll:()[Ljava/lang/String;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 33
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy long java.io.IOException java.util.List top int int java.lang.String[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* file */
        start local 5 // java.lang.String file
         5: .line 240
            aload 5 /* file */
            ldc "snapshots_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 32
         6: .line 241
            aload 5 /* file */
            ldc "snapshots_"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 9 /* gen */
        start local 9 // long gen
         7: .line 242
            lload 1 /* genLoaded */
            ldc -1
            lcmp
            ifeq 8
            lload 9 /* gen */
            lload 1 /* genLoaded */
            lcmp
            ifle 32
         8: .line 243
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy long java.io.IOException java.util.List java.lang.String int int java.lang.String[] long
      StackMap stack:
            aload 4 /* snapshotFiles */
            aload 5 /* file */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 244
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 11 /* m */
        start local 11 // java.util.Map m
        10: .line 245
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            aload 5 /* file */
            getstatic org.apache.lucene.store.IOContext.DEFAULT:Lorg/apache/lucene/store/IOContext;
            invokevirtual org.apache.lucene.store.Directory.openInput:(Ljava/lang/String;Lorg/apache/lucene/store/IOContext;)Lorg/apache/lucene/store/IndexInput;
            astore 12 /* in */
        start local 12 // org.apache.lucene.store.IndexInput in
        11: .line 247
            aload 12 /* in */
            ldc "snapshots"
            iconst_0
            iconst_0
            invokestatic org.apache.lucene.codecs.CodecUtil.checkHeader:(Lorg/apache/lucene/store/DataInput;Ljava/lang/String;II)I
            pop
        12: .line 248
            aload 12 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readVInt:()I
            istore 13 /* count */
        start local 13 // int count
        13: .line 249
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        14: goto 19
        15: .line 250
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy long java.io.IOException java.util.List java.lang.String int int java.lang.String[] long java.util.Map org.apache.lucene.store.IndexInput int int
      StackMap stack:
            aload 12 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readVLong:()J
            lstore 15 /* commitGen */
        start local 15 // long commitGen
        16: .line 251
            aload 12 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.readVInt:()I
            istore 17 /* refCount */
        start local 17 // int refCount
        17: .line 252
            aload 11 /* m */
            lload 15 /* commitGen */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iload 17 /* refCount */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 17 // int refCount
        end local 15 // long commitGen
        18: .line 249
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 14 /* i */
            iload 13 /* count */
            if_icmplt 15
        end local 14 // int i
        end local 13 // int count
        20: .line 254
            goto 28
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy long java.io.IOException java.util.List java.lang.String int int java.lang.String[] long java.util.Map org.apache.lucene.store.IndexInput
      StackMap stack: java.io.IOException
        21: astore 13 /* ioe2 */
        start local 13 // java.io.IOException ioe2
        22: .line 256
            aload 3 /* ioe */
            ifnonnull 24
        23: .line 257
            aload 13 /* ioe2 */
            astore 3 /* ioe */
        end local 13 // java.io.IOException ioe2
        24: .line 260
      StackMap locals:
      StackMap stack:
            aload 12 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.close:()V
            goto 29
        25: .line 259
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 18
        26: .line 260
            aload 12 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.close:()V
        27: .line 261
            aload 18
            athrow
        28: .line 260
      StackMap locals:
      StackMap stack:
            aload 12 /* in */
            invokevirtual org.apache.lucene.store.IndexInput.close:()V
        29: .line 263
      StackMap locals:
      StackMap stack:
            lload 9 /* gen */
            lstore 1 /* genLoaded */
        30: .line 264
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.refCounts:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        31: .line 265
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.refCounts:Ljava/util/Map;
            aload 11 /* m */
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        end local 12 // org.apache.lucene.store.IndexInput in
        end local 11 // java.util.Map m
        end local 9 // long gen
        end local 5 // java.lang.String file
        32: .line 239
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy long java.io.IOException java.util.List top int int java.lang.String[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        33: iload 6
            iload 7
            if_icmplt 4
        34: .line 270
            lload 1 /* genLoaded */
            ldc -1
            lcmp
            ifne 37
        35: .line 272
            aload 3 /* ioe */
            ifnull 45
        36: .line 274
            aload 3 /* ioe */
            athrow
        37: .line 277
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy long java.io.IOException java.util.List
      StackMap stack:
            aload 4 /* snapshotFiles */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 44
        38: .line 279
            new java.lang.StringBuilder
            dup
            ldc "snapshots_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* genLoaded */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* curFileName */
        start local 5 // java.lang.String curFileName
        39: .line 280
            aload 4 /* snapshotFiles */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 43
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy long java.io.IOException java.util.List java.lang.String top java.util.Iterator
      StackMap stack:
        40: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* file */
        start local 6 // java.lang.String file
        41: .line 281
            aload 5 /* curFileName */
            aload 6 /* file */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 43
        42: .line 282
            aload 0 /* this */
            getfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.dir:Lorg/apache/lucene/store/Directory;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 6 /* file */
            aastore
            invokestatic org.apache.lucene.util.IOUtils.deleteFilesIgnoringExceptions:(Lorg/apache/lucene/store/Directory;[Ljava/lang/String;)V
        end local 6 // java.lang.String file
        43: .line 280
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        end local 5 // java.lang.String curFileName
        44: .line 286
      StackMap locals: org.apache.lucene.index.PersistentSnapshotDeletionPolicy long java.io.IOException java.util.List
      StackMap stack:
            aload 0 /* this */
            lconst_1
            lload 1 /* genLoaded */
            ladd
            putfield org.apache.lucene.index.PersistentSnapshotDeletionPolicy.nextWriteGen:J
        45: .line 288
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.List snapshotFiles
        end local 3 // java.io.IOException ioe
        end local 1 // long genLoaded
        end local 0 // org.apache.lucene.index.PersistentSnapshotDeletionPolicy this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   46     0           this  Lorg/apache/lucene/index/PersistentSnapshotDeletionPolicy;
            1   46     1      genLoaded  J
            2   46     3            ioe  Ljava/io/IOException;
            3   46     4  snapshotFiles  Ljava/util/List<Ljava/lang/String;>;
            5   32     5           file  Ljava/lang/String;
            7   32     9            gen  J
           10   32    11              m  Ljava/util/Map<Ljava/lang/Long;Ljava/lang/Integer;>;
           11   32    12             in  Lorg/apache/lucene/store/IndexInput;
           13   20    13          count  I
           14   20    14              i  I
           16   18    15      commitGen  J
           17   18    17       refCount  I
           22   24    13           ioe2  Ljava/io/IOException;
           39   44     5    curFileName  Ljava/lang/String;
           41   43     6           file  Ljava/lang/String;
      Exception table:
        from    to  target  type
          11    20      21  Class java.io.IOException
          11    24      25  any
    Exceptions:
      throws java.io.IOException
}
SourceFile: "PersistentSnapshotDeletionPolicy.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final OpenMode = org.apache.lucene.index.IndexWriterConfig$OpenMode of org.apache.lucene.index.IndexWriterConfig