public class org.apache.cassandra.cache.AutoSavingCache$Writer extends org.apache.cassandra.db.compaction.CompactionInfo$Holder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.cache.AutoSavingCache$Writer
  super_class: org.apache.cassandra.db.compaction.CompactionInfo$Holder
{
  private final java.util.Iterator<K> keyIterator;
    descriptor: Ljava/util/Iterator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Iterator<TK;>;

  private final org.apache.cassandra.db.compaction.CompactionInfo info;
    descriptor: Lorg/apache/cassandra/db/compaction/CompactionInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final long keysEstimate;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final org.apache.cassandra.cache.AutoSavingCache this$0;
    descriptor: Lorg/apache/cassandra/cache/AutoSavingCache;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 281
            ldc Lorg/apache/cassandra/cache/AutoSavingCache;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.cassandra.cache.AutoSavingCache$Writer.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.apache.cassandra.cache.AutoSavingCache, int);
    descriptor: (Lorg/apache/cassandra/cache/AutoSavingCache;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=5, args_size=3
        start local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
        start local 2 // int keysToSave
         0: .line 289
            aload 0 /* this */
            aload 1
            putfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
         1: .line 288
            aload 0 /* this */
            invokespecial org.apache.cassandra.db.compaction.CompactionInfo$Holder.<init>:()V
         2: .line 290
            aload 1
            invokevirtual org.apache.cassandra.cache.AutoSavingCache.size:()I
            istore 3 /* size */
        start local 3 // int size
         3: .line 291
            iload 2 /* keysToSave */
            iload 3 /* size */
            if_icmpge 4
            iload 2 /* keysToSave */
            ifne 7
         4: .line 293
      StackMap locals: org.apache.cassandra.cache.AutoSavingCache$Writer org.apache.cassandra.cache.AutoSavingCache int int
      StackMap stack:
            aload 0 /* this */
            aload 1
            invokevirtual org.apache.cassandra.cache.AutoSavingCache.keyIterator:()Ljava/util/Iterator;
            putfield org.apache.cassandra.cache.AutoSavingCache$Writer.keyIterator:Ljava/util/Iterator;
         5: .line 294
            aload 0 /* this */
            iload 3 /* size */
            i2l
            putfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysEstimate:J
         6: .line 295
            goto 9
         7: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1
            iload 2 /* keysToSave */
            invokevirtual org.apache.cassandra.cache.AutoSavingCache.hotKeyIterator:(I)Ljava/util/Iterator;
            putfield org.apache.cassandra.cache.AutoSavingCache$Writer.keyIterator:Ljava/util/Iterator;
         8: .line 299
            aload 0 /* this */
            iload 2 /* keysToSave */
            i2l
            putfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysEstimate:J
         9: .line 303
      StackMap locals:
      StackMap stack:
            aload 1
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            getstatic org.apache.cassandra.service.CacheService$CacheType.KEY_CACHE:Lorg/apache/cassandra/service/CacheService$CacheType;
            if_acmpne 12
        10: .line 304
            getstatic org.apache.cassandra.db.compaction.OperationType.KEY_CACHE_SAVE:Lorg/apache/cassandra/db/compaction/OperationType;
            astore 4 /* type */
        start local 4 // org.apache.cassandra.db.compaction.OperationType type
        11: goto 19
        end local 4 // org.apache.cassandra.db.compaction.OperationType type
        12: .line 305
      StackMap locals:
      StackMap stack:
            aload 1
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            getstatic org.apache.cassandra.service.CacheService$CacheType.ROW_CACHE:Lorg/apache/cassandra/service/CacheService$CacheType;
            if_acmpne 15
        13: .line 306
            getstatic org.apache.cassandra.db.compaction.OperationType.ROW_CACHE_SAVE:Lorg/apache/cassandra/db/compaction/OperationType;
            astore 4 /* type */
        start local 4 // org.apache.cassandra.db.compaction.OperationType type
        14: goto 19
        end local 4 // org.apache.cassandra.db.compaction.OperationType type
        15: .line 307
      StackMap locals:
      StackMap stack:
            aload 1
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            getstatic org.apache.cassandra.service.CacheService$CacheType.COUNTER_CACHE:Lorg/apache/cassandra/service/CacheService$CacheType;
            if_acmpne 18
        16: .line 308
            getstatic org.apache.cassandra.db.compaction.OperationType.COUNTER_CACHE_SAVE:Lorg/apache/cassandra/db/compaction/OperationType;
            astore 4 /* type */
        start local 4 // org.apache.cassandra.db.compaction.OperationType type
        17: goto 19
        end local 4 // org.apache.cassandra.db.compaction.OperationType type
        18: .line 310
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.db.compaction.OperationType.UNKNOWN:Lorg/apache/cassandra/db/compaction/OperationType;
            astore 4 /* type */
        start local 4 // org.apache.cassandra.db.compaction.OperationType type
        19: .line 312
      StackMap locals: org.apache.cassandra.db.compaction.OperationType
      StackMap stack:
            aload 0 /* this */
            new org.apache.cassandra.db.compaction.CompactionInfo
            dup
            ldc "system"
            aload 1
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            invokevirtual org.apache.cassandra.service.CacheService$CacheType.toString:()Ljava/lang/String;
            invokestatic org.apache.cassandra.config.CFMetaData.createFake:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
        20: .line 313
            aload 4 /* type */
        21: .line 314
            lconst_0
        22: .line 315
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysEstimate:J
        23: .line 316
            getstatic org.apache.cassandra.db.compaction.CompactionInfo$Unit.KEYS:Lorg/apache/cassandra/db/compaction/CompactionInfo$Unit;
        24: .line 317
            invokestatic org.apache.cassandra.utils.UUIDGen.getTimeUUID:()Ljava/util/UUID;
            invokespecial org.apache.cassandra.db.compaction.CompactionInfo.<init>:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/compaction/OperationType;JJLorg/apache/cassandra/db/compaction/CompactionInfo$Unit;Ljava/util/UUID;)V
        25: .line 312
            putfield org.apache.cassandra.cache.AutoSavingCache$Writer.info:Lorg/apache/cassandra/db/compaction/CompactionInfo;
        26: .line 318
            return
        end local 4 // org.apache.cassandra.db.compaction.OperationType type
        end local 3 // int size
        end local 2 // int keysToSave
        end local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        this  Lorg/apache/cassandra/cache/AutoSavingCache$Writer;
            0   27     2  keysToSave  I
            3   27     3        size  I
           11   12     4        type  Lorg/apache/cassandra/db/compaction/OperationType;
           14   15     4        type  Lorg/apache/cassandra/db/compaction/OperationType;
           17   18     4        type  Lorg/apache/cassandra/db/compaction/OperationType;
           19   27     4        type  Lorg/apache/cassandra/db/compaction/OperationType;
    MethodParameters:
            Name  Flags
      this$0      final
      keysToSave  

  public org.apache.cassandra.service.CacheService$CacheType cacheType();
    descriptor: ()Lorg/apache/cassandra/service/CacheService$CacheType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
         0: .line 322
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            areturn
        end local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cache/AutoSavingCache$Writer;

  public org.apache.cassandra.db.compaction.CompactionInfo getCompactionInfo();
    descriptor: ()Lorg/apache/cassandra/db/compaction/CompactionInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
         0: .line 329
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.info:Lorg/apache/cassandra/db/compaction/CompactionInfo;
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysWritten:J
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysWritten:J
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysEstimate:J
            invokestatic java.lang.Math.max:(JJ)J
            invokevirtual org.apache.cassandra.db.compaction.CompactionInfo.forProgress:(JJ)Lorg/apache/cassandra/db/compaction/CompactionInfo;
            areturn
        end local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cache/AutoSavingCache$Writer;

  public void saveCache();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=10, args_size=1
        start local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
         0: .line 334
            getstatic org.apache.cassandra.cache.AutoSavingCache.logger:Lorg/slf4j/Logger;
            ldc "Deleting old {} files."
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 335
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cache.AutoSavingCache$Writer.deleteOldCacheFiles:()V
         2: .line 337
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keyIterator:Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         3: .line 339
            getstatic org.apache.cassandra.cache.AutoSavingCache.logger:Lorg/slf4j/Logger;
            ldc "Skipping {} save, cache is empty."
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 340
            return
         5: .line 343
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         6: .line 345
            aload 0 /* this */
            invokevirtual org.apache.cassandra.cache.AutoSavingCache$Writer.tempCacheFiles:()Lorg/apache/cassandra/utils/Pair;
            astore 3 /* cacheFilePaths */
        start local 3 // org.apache.cassandra.utils.Pair cacheFilePaths
         7: .line 346
            aconst_null
            astore 4
            aconst_null
            astore 5
         8: new org.apache.cassandra.io.util.WrappedDataOutputStreamPlus
            dup
            getstatic org.apache.cassandra.cache.AutoSavingCache.streamFactory:Lorg/apache/cassandra/cache/AutoSavingCache$IStreamFactory;
            aload 3 /* cacheFilePaths */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.io.File
            aload 3 /* cacheFilePaths */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.io.File
            invokeinterface org.apache.cassandra.cache.AutoSavingCache$IStreamFactory.getOutputStream:(Ljava/io/File;Ljava/io/File;)Ljava/io/OutputStream;
            invokespecial org.apache.cassandra.io.util.WrappedDataOutputStreamPlus.<init>:(Ljava/io/OutputStream;)V
            astore 6 /* writer */
        start local 6 // org.apache.cassandra.io.util.WrappedDataOutputStreamPlus writer
         9: .line 350
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getVersion:()Ljava/util/UUID;
            astore 7 /* schemaVersion */
        start local 7 // java.util.UUID schemaVersion
        10: .line 351
            aload 7 /* schemaVersion */
            ifnonnull 13
        11: .line 353
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.updateVersion:()V
        12: .line 354
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getVersion:()Ljava/util/UUID;
            astore 7 /* schemaVersion */
        13: .line 356
      StackMap locals: org.apache.cassandra.cache.AutoSavingCache$Writer long org.apache.cassandra.utils.Pair java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.WrappedDataOutputStreamPlus java.util.UUID
      StackMap stack:
            aload 6 /* writer */
            aload 7 /* schemaVersion */
            invokevirtual java.util.UUID.getMostSignificantBits:()J
            invokevirtual org.apache.cassandra.io.util.WrappedDataOutputStreamPlus.writeLong:(J)V
        14: .line 357
            aload 6 /* writer */
            aload 7 /* schemaVersion */
            invokevirtual java.util.UUID.getLeastSignificantBits:()J
            invokevirtual org.apache.cassandra.io.util.WrappedDataOutputStreamPlus.writeLong:(J)V
        15: .line 359
            goto 24
        16: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keyIterator:Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cache.CacheKey
            astore 8 /* key */
        start local 8 // org.apache.cassandra.cache.CacheKey key
        17: .line 363
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 8 /* key */
            getfield org.apache.cassandra.cache.CacheKey.ksAndCFName:Lorg/apache/cassandra/utils/Pair;
            invokevirtual org.apache.cassandra.config.Schema.getColumnFamilyStoreIncludingIndexes:(Lorg/apache/cassandra/utils/Pair;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            astore 9 /* cfs */
        start local 9 // org.apache.cassandra.db.ColumnFamilyStore cfs
        18: .line 364
            aload 9 /* cfs */
            ifnonnull 20
        19: .line 365
            goto 24
        20: .line 367
      StackMap locals: org.apache.cassandra.cache.CacheKey org.apache.cassandra.db.ColumnFamilyStore
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheLoader:Lorg/apache/cassandra/cache/AutoSavingCache$CacheSerializer;
            aload 8 /* key */
            aload 6 /* writer */
            aload 9 /* cfs */
            invokeinterface org.apache.cassandra.cache.AutoSavingCache$CacheSerializer.serialize:(Lorg/apache/cassandra/cache/CacheKey;Lorg/apache/cassandra/io/util/DataOutputPlus;Lorg/apache/cassandra/db/ColumnFamilyStore;)V
        21: .line 369
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysWritten:J
            lconst_1
            ladd
            putfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysWritten:J
        22: .line 370
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysWritten:J
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysEstimate:J
            lcmp
            iflt 24
        23: .line 371
            goto 25
        end local 9 // org.apache.cassandra.db.ColumnFamilyStore cfs
        end local 8 // org.apache.cassandra.cache.CacheKey key
        24: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keyIterator:Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 7 // java.util.UUID schemaVersion
        25: .line 373
      StackMap locals:
      StackMap stack:
            aload 6 /* writer */
            ifnull 35
            aload 6 /* writer */
            invokevirtual org.apache.cassandra.io.util.WrappedDataOutputStreamPlus.close:()V
            goto 35
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 4
            aload 6 /* writer */
            ifnull 27
            aload 6 /* writer */
            invokevirtual org.apache.cassandra.io.util.WrappedDataOutputStreamPlus.close:()V
        end local 6 // org.apache.cassandra.io.util.WrappedDataOutputStreamPlus writer
      StackMap locals:
      StackMap stack:
        27: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 5
            aload 4
            ifnonnull 29
            aload 5
            astore 4
            goto 30
      StackMap locals:
      StackMap stack:
        29: aload 4
            aload 5
            if_acmpeq 30
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        30: aload 4
            athrow
        31: .line 374
      StackMap locals: org.apache.cassandra.cache.AutoSavingCache$Writer long org.apache.cassandra.utils.Pair
      StackMap stack: java.io.FileNotFoundException
            astore 4 /* e */
        start local 4 // java.io.FileNotFoundException e
        32: .line 376
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.FileNotFoundException e
        33: .line 378
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        34: .line 380
            new org.apache.cassandra.io.FSWriteError
            dup
            aload 4 /* e */
            aload 3 /* cacheFilePaths */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.io.File
            invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/io/File;)V
            athrow
        end local 4 // java.io.IOException e
        35: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            ldc "e"
            invokevirtual org.apache.cassandra.cache.AutoSavingCache.getCacheDataPath:(Ljava/lang/String;)Ljava/io/File;
            astore 4 /* cacheFile */
        start local 4 // java.io.File cacheFile
        36: .line 384
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            ldc "e"
            invokevirtual org.apache.cassandra.cache.AutoSavingCache.getCacheCrcPath:(Ljava/lang/String;)Ljava/io/File;
            astore 5 /* crcFile */
        start local 5 // java.io.File crcFile
        37: .line 386
            aload 4 /* cacheFile */
            invokevirtual java.io.File.delete:()Z
            pop
        38: .line 387
            aload 5 /* crcFile */
            invokevirtual java.io.File.delete:()Z
            pop
        39: .line 389
            aload 3 /* cacheFilePaths */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.io.File
            aload 4 /* cacheFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 41
        40: .line 390
            getstatic org.apache.cassandra.cache.AutoSavingCache.logger:Lorg/slf4j/Logger;
            ldc "Unable to rename {} to {}"
            aload 3 /* cacheFilePaths */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            aload 4 /* cacheFile */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        41: .line 392
      StackMap locals: java.io.File java.io.File
      StackMap stack:
            aload 3 /* cacheFilePaths */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.io.File
            aload 5 /* crcFile */
            invokevirtual java.io.File.renameTo:(Ljava/io/File;)Z
            ifne 43
        42: .line 393
            getstatic org.apache.cassandra.cache.AutoSavingCache.logger:Lorg/slf4j/Logger;
            ldc "Unable to rename {} to {}"
            aload 3 /* cacheFilePaths */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            aload 5 /* crcFile */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        43: .line 395
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.cache.AutoSavingCache.logger:Lorg/slf4j/Logger;
            ldc "Saved {} ({} items) in {} ms"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.keysWritten:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
        44: .line 396
            return
        end local 5 // java.io.File crcFile
        end local 4 // java.io.File cacheFile
        end local 3 // org.apache.cassandra.utils.Pair cacheFilePaths
        end local 1 // long start
        end local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   45     0            this  Lorg/apache/cassandra/cache/AutoSavingCache$Writer;
            6   45     1           start  J
            7   45     3  cacheFilePaths  Lorg/apache/cassandra/utils/Pair<Ljava/io/File;Ljava/io/File;>;
            9   27     6          writer  Lorg/apache/cassandra/io/util/WrappedDataOutputStreamPlus;
           10   25     7   schemaVersion  Ljava/util/UUID;
           17   24     8             key  TK;
           18   24     9             cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
           32   33     4               e  Ljava/io/FileNotFoundException;
           34   35     4               e  Ljava/io/IOException;
           36   45     4       cacheFile  Ljava/io/File;
           37   45     5         crcFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           9    25      26  any
           8    28      28  any
           7    31      31  Class java.io.FileNotFoundException
           7    31      33  Class java.io.IOException

  private org.apache.cassandra.utils.Pair<java.io.File, java.io.File> tempCacheFiles();
    descriptor: ()Lorg/apache/cassandra/utils/Pair;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
         0: .line 400
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            ldc "e"
            invokevirtual org.apache.cassandra.cache.AutoSavingCache.getCacheDataPath:(Ljava/lang/String;)Ljava/io/File;
            astore 1 /* dataPath */
        start local 1 // java.io.File dataPath
         1: .line 401
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            ldc "e"
            invokevirtual org.apache.cassandra.cache.AutoSavingCache.getCacheCrcPath:(Ljava/lang/String;)Ljava/io/File;
            astore 2 /* crcPath */
        start local 2 // java.io.File crcPath
         2: .line 402
            aload 1 /* dataPath */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            aconst_null
            aload 1 /* dataPath */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokestatic org.apache.cassandra.io.util.FileUtils.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
         3: .line 403
            aload 2 /* crcPath */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            aconst_null
            aload 2 /* crcPath */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokestatic org.apache.cassandra.io.util.FileUtils.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
         4: .line 402
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            areturn
        end local 2 // java.io.File crcPath
        end local 1 // java.io.File dataPath
        end local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/cassandra/cache/AutoSavingCache$Writer;
            1    5     1  dataPath  Ljava/io/File;
            2    5     2   crcPath  Ljava/io/File;
    Signature: ()Lorg/apache/cassandra/utils/Pair<Ljava/io/File;Ljava/io/File;>;

  private void deleteOldCacheFiles();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
         0: .line 408
            new java.io.File
            dup
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSavedCachesLocation:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* savedCachesDir */
        start local 1 // java.io.File savedCachesDir
         1: .line 409
            getstatic org.apache.cassandra.cache.AutoSavingCache$Writer.$assertionsDisabled:Z
            ifne 3
            aload 1 /* savedCachesDir */
            invokevirtual java.io.File.exists:()Z
            ifeq 2
            aload 1 /* savedCachesDir */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 3
      StackMap locals: java.io.File
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 410
      StackMap locals:
      StackMap stack:
            aload 1 /* savedCachesDir */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 2 /* files */
        start local 2 // java.io.File[] files
         4: .line 411
            aload 2 /* files */
            ifnull 17
         5: .line 413
            ldc "%s-%s.db"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            invokevirtual org.apache.cassandra.service.CacheService$CacheType.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc "e"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* cacheNameFormat */
        start local 3 // java.lang.String cacheNameFormat
         6: .line 414
            aload 2 /* files */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 15
      StackMap locals: org.apache.cassandra.cache.AutoSavingCache$Writer java.io.File java.io.File[] java.lang.String top int int java.io.File[]
      StackMap stack:
         7: aload 7
            iload 5
            aaload
            astore 4 /* file */
        start local 4 // java.io.File file
         8: .line 416
            aload 4 /* file */
            invokevirtual java.io.File.isFile:()Z
            ifne 10
         9: .line 417
            goto 14
        10: .line 419
      StackMap locals: org.apache.cassandra.cache.AutoSavingCache$Writer java.io.File java.io.File[] java.lang.String java.io.File int int java.io.File[]
      StackMap stack:
            aload 4 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            aload 3 /* cacheNameFormat */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 12
        11: .line 420
            aload 4 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.cassandra.cache.AutoSavingCache$Writer.this$0:Lorg/apache/cassandra/cache/AutoSavingCache;
            getfield org.apache.cassandra.cache.AutoSavingCache.cacheType:Lorg/apache/cassandra/service/CacheService$CacheType;
            invokevirtual org.apache.cassandra.service.CacheService$CacheType.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 422
      StackMap locals:
      StackMap stack:
            aload 4 /* file */
            invokevirtual java.io.File.delete:()Z
            ifne 14
        13: .line 423
            getstatic org.apache.cassandra.cache.AutoSavingCache.logger:Lorg/slf4j/Logger;
            ldc "Failed to delete {}"
            aload 4 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 4 // java.io.File file
        14: .line 414
      StackMap locals: org.apache.cassandra.cache.AutoSavingCache$Writer java.io.File java.io.File[] java.lang.String top int int java.io.File[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        15: iload 5
            iload 6
            if_icmplt 7
        end local 3 // java.lang.String cacheNameFormat
        16: .line 426
            goto 18
        17: .line 429
      StackMap locals: org.apache.cassandra.cache.AutoSavingCache$Writer java.io.File java.io.File[]
      StackMap stack:
            getstatic org.apache.cassandra.cache.AutoSavingCache.logger:Lorg/slf4j/Logger;
            ldc "Could not list files in {}"
            aload 1 /* savedCachesDir */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        18: .line 431
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.File[] files
        end local 1 // java.io.File savedCachesDir
        end local 0 // org.apache.cassandra.cache.AutoSavingCache$Writer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0             this  Lorg/apache/cassandra/cache/AutoSavingCache$Writer;
            1   19     1   savedCachesDir  Ljava/io/File;
            4   19     2            files  [Ljava/io/File;
            6   16     3  cacheNameFormat  Ljava/lang/String;
            8   14     4             file  Ljava/io/File;
}
SourceFile: "AutoSavingCache.java"
NestHost: org.apache.cassandra.cache.AutoSavingCache
InnerClasses:
  public abstract CacheSerializer = org.apache.cassandra.cache.AutoSavingCache$CacheSerializer of org.apache.cassandra.cache.AutoSavingCache
  public abstract IStreamFactory = org.apache.cassandra.cache.AutoSavingCache$IStreamFactory of org.apache.cassandra.cache.AutoSavingCache
  public Writer = org.apache.cassandra.cache.AutoSavingCache$Writer of org.apache.cassandra.cache.AutoSavingCache
  public abstract Holder = org.apache.cassandra.db.compaction.CompactionInfo$Holder of org.apache.cassandra.db.compaction.CompactionInfo
  public final Unit = org.apache.cassandra.db.compaction.CompactionInfo$Unit of org.apache.cassandra.db.compaction.CompactionInfo
  public final CacheType = org.apache.cassandra.service.CacheService$CacheType of org.apache.cassandra.service.CacheService