public class org.apache.cassandra.db.commitlog.CommitLogReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.db.commitlog.CommitLogReader
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  public static final int ALL_MUTATIONS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  private final java.util.zip.CRC32 checksum;
    descriptor: Ljava/util/zip/CRC32;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.util.UUID, java.util.concurrent.atomic.AtomicInteger> invalidMutations;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/util/UUID;Ljava/util/concurrent/atomic/AtomicInteger;>;

  private byte[] buffer;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 49
            ldc Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
         1: .line 54
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            putfield org.apache.cassandra.db.commitlog.CommitLogReader.checksum:Ljava/util/zip/CRC32;
         2: .line 63
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.cassandra.db.commitlog.CommitLogReader.invalidMutations:Ljava/util/Map;
         3: .line 64
            aload 0 /* this */
            sipush 4096
            newarray 8
            putfield org.apache.cassandra.db.commitlog.CommitLogReader.buffer:[B
         4: .line 65
            return
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;

  public java.util.Set<java.util.Map$Entry<java.util.UUID, java.util.concurrent.atomic.AtomicInteger>> getInvalidMutations();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
         0: .line 69
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.invalidMutations:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            areturn
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
    Signature: ()Ljava/util/Set<Ljava/util/Map$Entry<Ljava/util/UUID;Ljava/util/concurrent/atomic/AtomicInteger;>;>;

  public void readAllFiles(org.apache.cassandra.db.commitlog.CommitLogReadHandler, java.io.File[]);
    descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;[Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
        start local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        start local 2 // java.io.File[] files
         0: .line 77
            aload 0 /* this */
            aload 1 /* handler */
            aload 2 /* files */
            getstatic org.apache.cassandra.db.commitlog.CommitLogPosition.NONE:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readAllFiles:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;[Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)V
         1: .line 78
            return
        end local 2 // java.io.File[] files
        end local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            0    2     1  handler  Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;
            0    2     2    files  [Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      handler  
      files    

  private static boolean shouldSkip(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // java.io.File file
         0: .line 82
            aload 0 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.db.commitlog.CommitLogDescriptor.fromFileName:(Ljava/lang/String;)Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            astore 1 /* desc */
        start local 1 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
         1: .line 83
            aload 1 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.version:I
            iconst_4
            if_icmpge 3
         2: .line 85
            iconst_0
            ireturn
         3: .line 87
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogDescriptor
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
         4: aload 0 /* file */
            invokestatic org.apache.cassandra.io.util.RandomAccessReader.open:(Ljava/io/File;)Lorg/apache/cassandra/io/util/RandomAccessReader;
            astore 4 /* reader */
        start local 4 // org.apache.cassandra.io.util.RandomAccessReader reader
         5: .line 89
            aload 4 /* reader */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEncryptionContext:()Lorg/apache/cassandra/security/EncryptionContext;
            invokestatic org.apache.cassandra.db.commitlog.CommitLogDescriptor.readHeader:(Ljava/io/DataInput;Lorg/apache/cassandra/security/EncryptionContext;)Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            pop
         6: .line 90
            aload 4 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.readInt:()I
            istore 5 /* end */
        start local 5 // int end
         7: .line 91
            aload 4 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.readInt:()I
            i2l
            ldc 4294967295
            land
            lstore 6 /* filecrc */
        start local 6 // long filecrc
         8: .line 92
            iload 5 /* end */
            ifne 9
            lload 6 /* filecrc */
            lconst_0
            lcmp
            ifne 9
            iconst_1
            goto 10
      StackMap locals: java.io.File org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader int long
      StackMap stack:
         9: iconst_0
        10: .line 93
      StackMap locals:
      StackMap stack: int
            aload 4 /* reader */
            ifnull 11
            aload 4 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
        11: .line 92
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 6 // long filecrc
        end local 5 // int end
      StackMap locals: java.io.File org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader
      StackMap stack: java.lang.Throwable
        12: astore 2
        13: .line 93
            aload 4 /* reader */
            ifnull 14
            aload 4 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
        end local 4 // org.apache.cassandra.io.util.RandomAccessReader reader
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 3
            aload 2
            ifnonnull 16
            aload 3
            astore 2
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 2
            aload 3
            if_acmpeq 17
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 2
            athrow
        end local 1 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     file  Ljava/io/File;
            1   18     1     desc  Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            5   14     4   reader  Lorg/apache/cassandra/io/util/RandomAccessReader;
            7   12     5      end  I
            8   12     6  filecrc  J
      Exception table:
        from    to  target  type
           5    10      12  any
           4    11      15  any
          12    15      15  any
    Exceptions:
      throws java.io.IOException, org.apache.cassandra.exceptions.ConfigurationException
    MethodParameters:
      Name  Flags
      file  

  private static java.util.List<java.io.File> filterCommitLogFiles(java.io.File[]);
    descriptor: ([Ljava/io/File;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // java.io.File[] toFilter
         0: .line 98
            new java.util.ArrayList
            dup
            aload 0 /* toFilter */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* filtered */
        start local 1 // java.util.List filtered
         1: .line 99
            aload 0 /* toFilter */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 11
      StackMap locals: java.io.File[] java.util.List top int int java.io.File[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* file */
        start local 2 // java.io.File file
         3: .line 103
            aload 2 /* file */
            invokestatic org.apache.cassandra.db.commitlog.CommitLogReader.shouldSkip:(Ljava/io/File;)Z
            ifeq 6
         4: .line 105
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            ldc "Skipping playback of empty log: {}"
            aload 2 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 106
            goto 10
         6: .line 109
      StackMap locals: java.io.File[] java.util.List java.io.File int int java.io.File[]
      StackMap stack:
            aload 1 /* filtered */
            aload 2 /* file */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 111
            goto 10
         8: .line 112
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         9: .line 115
            aload 1 /* filtered */
            aload 2 /* file */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.io.File file
        10: .line 99
      StackMap locals: java.io.File[] java.util.List top int int java.io.File[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        11: iload 3
            iload 4
            if_icmplt 2
        12: .line 119
            aload 1 /* filtered */
            areturn
        end local 1 // java.util.List filtered
        end local 0 // java.io.File[] toFilter
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0  toFilter  [Ljava/io/File;
            1   13     1  filtered  Ljava/util/List<Ljava/io/File;>;
            3   10     2      file  Ljava/io/File;
      Exception table:
        from    to  target  type
           3     7       8  Class java.lang.Exception
    Signature: ([Ljava/io/File;)Ljava/util/List<Ljava/io/File;>;
    MethodParameters:
          Name  Flags
      toFilter  

  public void readAllFiles(org.apache.cassandra.db.commitlog.CommitLogReadHandler, java.io.File[], org.apache.cassandra.db.commitlog.CommitLogPosition);
    descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;[Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
        start local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        start local 2 // java.io.File[] files
        start local 3 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
         0: .line 127
            aload 2 /* files */
            invokestatic org.apache.cassandra.db.commitlog.CommitLogReader.filterCommitLogFiles:([Ljava/io/File;)Ljava/util/List;
            astore 4 /* filteredLogs */
        start local 4 // java.util.List filteredLogs
         1: .line 128
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: .line 129
            aload 4 /* filteredLogs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File[] org.apache.cassandra.db.commitlog.CommitLogPosition java.util.List int top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.File
            astore 6 /* file */
        start local 6 // java.io.File file
         4: .line 131
            iinc 5 /* i */ 1
         5: .line 132
            aload 0 /* this */
            aload 1 /* handler */
            aload 6 /* file */
            aload 3 /* minPosition */
            iconst_m1
            iload 5 /* i */
            aload 4 /* filteredLogs */
            invokeinterface java.util.List.size:()I
            if_icmpne 6
            iconst_1
            goto 7
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File[] org.apache.cassandra.db.commitlog.CommitLogPosition java.util.List int java.io.File java.util.Iterator
      StackMap stack: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int
         6: iconst_0
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File[] org.apache.cassandra.db.commitlog.CommitLogPosition java.util.List int java.io.File java.util.Iterator
      StackMap stack: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int
         7: invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readCommitLogSegment:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;IZ)V
        end local 6 // java.io.File file
         8: .line 129
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File[] org.apache.cassandra.db.commitlog.CommitLogPosition java.util.List int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 134
            return
        end local 5 // int i
        end local 4 // java.util.List filteredLogs
        end local 3 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
        end local 2 // java.io.File[] files
        end local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            0   10     1       handler  Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;
            0   10     2         files  [Ljava/io/File;
            0   10     3   minPosition  Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
            1   10     4  filteredLogs  Ljava/util/List<Ljava/io/File;>;
            2   10     5             i  I
            4    8     6          file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      handler      
      files        
      minPosition  

  public void readCommitLogSegment(org.apache.cassandra.db.commitlog.CommitLogReadHandler, java.io.File, boolean);
    descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Ljava/io/File;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
        start local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        start local 2 // java.io.File file
        start local 3 // boolean tolerateTruncation
         0: .line 141
            aload 0 /* this */
            aload 1 /* handler */
            aload 2 /* file */
            getstatic org.apache.cassandra.db.commitlog.CommitLogPosition.NONE:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
            iconst_m1
            iload 3 /* tolerateTruncation */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readCommitLogSegment:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;IZ)V
         1: .line 142
            return
        end local 3 // boolean tolerateTruncation
        end local 2 // java.io.File file
        end local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            0    2     1             handler  Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;
            0    2     2                file  Ljava/io/File;
            0    2     3  tolerateTruncation  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                    Name  Flags
      handler             
      file                
      tolerateTruncation  

  public void readCommitLogSegment(org.apache.cassandra.db.commitlog.CommitLogReadHandler, java.io.File, int, boolean);
    descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Ljava/io/File;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
        start local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        start local 2 // java.io.File file
        start local 3 // int mutationLimit
        start local 4 // boolean tolerateTruncation
         0: .line 150
            aload 0 /* this */
            aload 1 /* handler */
            aload 2 /* file */
            getstatic org.apache.cassandra.db.commitlog.CommitLogPosition.NONE:Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
            iload 3 /* mutationLimit */
            iload 4 /* tolerateTruncation */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readCommitLogSegment:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;IZ)V
         1: .line 151
            return
        end local 4 // boolean tolerateTruncation
        end local 3 // int mutationLimit
        end local 2 // java.io.File file
        end local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            0    2     1             handler  Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;
            0    2     2                file  Ljava/io/File;
            0    2     3       mutationLimit  I
            0    2     4  tolerateTruncation  Z
    Exceptions:
      throws java.io.IOException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    MethodParameters:
                    Name  Flags
      handler             
      file                
      mutationLimit       
      tolerateTruncation  

  public void readCommitLogSegment(org.apache.cassandra.db.commitlog.CommitLogReadHandler, java.io.File, org.apache.cassandra.db.commitlog.CommitLogPosition, int, boolean);
    descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=16, args_size=6
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
        start local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        start local 2 // java.io.File file
        start local 3 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
        start local 4 // int mutationLimit
        start local 5 // boolean tolerateTruncation
         0: .line 170
            aload 2 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.db.commitlog.CommitLogDescriptor.fromFileName:(Ljava/lang/String;)Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            astore 6 /* desc */
        start local 6 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
         1: .line 172
            aconst_null
            astore 7
            aconst_null
            astore 8
         2: aload 2 /* file */
            invokestatic org.apache.cassandra.io.util.RandomAccessReader.open:(Ljava/io/File;)Lorg/apache/cassandra/io/util/RandomAccessReader;
            astore 9 /* reader */
        start local 9 // org.apache.cassandra.io.util.RandomAccessReader reader
         3: .line 174
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.version:I
            iconst_4
            if_icmpge 12
         4: .line 176
            aload 0 /* this */
            aload 2 /* file */
            aload 6 /* desc */
            aload 3 /* minPosition */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.shouldSkipSegmentId:(Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)Z
            ifne 10
         5: .line 178
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.segmentId:J
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.id:J
            lcmp
            ifne 7
         6: .line 179
            aload 9 /* reader */
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.position:I
            i2l
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.seek:(J)V
         7: .line 180
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader
      StackMap stack:
            new org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker
            dup
            iload 4 /* mutationLimit */
            iload 5 /* tolerateTruncation */
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.<init>:(IZ)V
            astore 10 /* statusTracker */
        start local 10 // org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker statusTracker
         8: .line 181
            aload 10 /* statusTracker */
            aload 6 /* desc */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogDescriptor.fileName:()Ljava/lang/String;
            putfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.errorContext:Ljava/lang/String;
         9: .line 182
            aload 0 /* this */
            aload 1 /* handler */
            aload 9 /* reader */
            aload 3 /* minPosition */
            aload 9 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.length:()J
            l2i
            aload 10 /* statusTracker */
            aload 6 /* desc */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readSection:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Lorg/apache/cassandra/io/util/FileDataInput;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;ILorg/apache/cassandra/db/commitlog/CommitLogReader$ReadStatusTracker;Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;)V
        end local 10 // org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker statusTracker
        10: .line 265
      StackMap locals:
      StackMap stack:
            aload 9 /* reader */
            ifnull 11
            aload 9 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
        11: .line 184
      StackMap locals:
      StackMap stack:
            return
        12: .line 187
      StackMap locals:
      StackMap stack:
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.id:J
            lstore 10 /* segmentIdFromFilename */
        start local 10 // long segmentIdFromFilename
        13: .line 192
            aload 9 /* reader */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEncryptionContext:()Lorg/apache/cassandra/security/EncryptionContext;
            invokestatic org.apache.cassandra.db.commitlog.CommitLogDescriptor.readHeader:(Ljava/io/DataInput;Lorg/apache/cassandra/security/EncryptionContext;)Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            astore 6 /* desc */
        14: .line 193
            goto 17
        15: .line 194
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader long
      StackMap stack: java.lang.Exception
            pop
        16: .line 196
            aconst_null
            astore 6 /* desc */
        17: .line 198
      StackMap locals:
      StackMap stack:
            aload 6 /* desc */
            ifnonnull 25
        18: .line 202
            aload 1 /* handler */
            new org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException
            dup
        19: .line 203
            ldc "Could not read commit log descriptor in file %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* file */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        20: .line 204
            getstatic org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason.UNRECOVERABLE_DESCRIPTOR_ERROR:Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;
        21: .line 205
            iload 5 /* tolerateTruncation */
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;Z)V
        22: .line 202
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.handleUnrecoverableError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)V
        23: .line 265
            aload 9 /* reader */
            ifnull 24
            aload 9 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
        24: .line 206
      StackMap locals:
      StackMap stack:
            return
        25: .line 209
      StackMap locals:
      StackMap stack:
            lload 10 /* segmentIdFromFilename */
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.id:J
            lcmp
            ifeq 35
        26: .line 211
            aload 1 /* handler */
            new org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException
            dup
        27: .line 212
            ldc "Segment id mismatch (filename %d, descriptor %d) in file %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            lload 10 /* segmentIdFromFilename */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.id:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 2 /* file */
            aastore
        28: .line 211
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        29: .line 213
            getstatic org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason.RECOVERABLE_DESCRIPTOR_ERROR:Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;
        30: .line 214
            iconst_0
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;Z)V
        31: .line 211
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.shouldSkipSegmentOnError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)Z
        32: .line 214
            ifeq 35
        33: .line 265
            aload 9 /* reader */
            ifnull 34
            aload 9 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
        34: .line 216
      StackMap locals:
      StackMap stack:
            return
        35: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* file */
            aload 6 /* desc */
            aload 3 /* minPosition */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.shouldSkipSegmentId:(Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)Z
            ifeq 38
        36: .line 265
            aload 9 /* reader */
            ifnull 37
            aload 9 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
        37: .line 221
      StackMap locals:
      StackMap stack:
            return
        38: .line 226
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.db.commitlog.CommitLogSegmentReader
            dup
            aload 1 /* handler */
            aload 6 /* desc */
            aload 9 /* reader */
            iload 5 /* tolerateTruncation */
            invokespecial org.apache.cassandra.db.commitlog.CommitLogSegmentReader.<init>:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;Lorg/apache/cassandra/io/util/RandomAccessReader;Z)V
            astore 12 /* segmentReader */
        start local 12 // org.apache.cassandra.db.commitlog.CommitLogSegmentReader segmentReader
        39: .line 227
            goto 48
        end local 12 // org.apache.cassandra.db.commitlog.CommitLogSegmentReader segmentReader
        40: .line 228
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 13 /* e */
        start local 13 // java.lang.Exception e
        41: .line 230
            aload 1 /* handler */
            new org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException
            dup
        42: .line 231
            ldc "Unable to create segment reader for commit log file: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 13 /* e */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        43: .line 232
            getstatic org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason.UNRECOVERABLE_UNKNOWN_ERROR:Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;
        44: .line 233
            iload 5 /* tolerateTruncation */
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;Z)V
        45: .line 230
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.handleUnrecoverableError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)V
        46: .line 265
            aload 9 /* reader */
            ifnull 47
            aload 9 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
        47: .line 234
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader long top java.lang.Exception
      StackMap stack:
            return
        end local 13 // java.lang.Exception e
        start local 12 // org.apache.cassandra.db.commitlog.CommitLogSegmentReader segmentReader
        48: .line 239
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader long org.apache.cassandra.db.commitlog.CommitLogSegmentReader
      StackMap stack:
            new org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker
            dup
            iload 4 /* mutationLimit */
            iload 5 /* tolerateTruncation */
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.<init>:(IZ)V
            astore 13 /* statusTracker */
        start local 13 // org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker statusTracker
        49: .line 240
            aload 12 /* segmentReader */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogSegmentReader.iterator:()Ljava/util/Iterator;
            astore 15
            goto 58
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader long org.apache.cassandra.db.commitlog.CommitLogSegmentReader org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker top java.util.Iterator
      StackMap stack:
        50: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment
            astore 14 /* syncSegment */
        start local 14 // org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment syncSegment
        51: .line 243
            aload 13 /* statusTracker */
            iload 5 /* tolerateTruncation */
            aload 14 /* syncSegment */
            getfield org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment.toleratesErrorsInSection:Z
            iand
            putfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.tolerateErrorsInSection:Z
        52: .line 246
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.id:J
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.segmentId:J
            lcmp
            ifne 54
            aload 14 /* syncSegment */
            getfield org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment.endPosition:I
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.position:I
            if_icmpge 54
        53: .line 247
            goto 58
        54: .line 249
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader long org.apache.cassandra.db.commitlog.CommitLogSegmentReader org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment java.util.Iterator
      StackMap stack:
            aload 13 /* statusTracker */
            ldc "Next section at %d in %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* syncSegment */
            getfield org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment.fileStartPosition:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 6 /* desc */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogDescriptor.fileName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            putfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.errorContext:Ljava/lang/String;
        55: .line 251
            aload 0 /* this */
            aload 1 /* handler */
            aload 14 /* syncSegment */
            getfield org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment.input:Lorg/apache/cassandra/io/util/FileDataInput;
            aload 3 /* minPosition */
            aload 14 /* syncSegment */
            getfield org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment.endPosition:I
            aload 13 /* statusTracker */
            aload 6 /* desc */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readSection:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Lorg/apache/cassandra/io/util/FileDataInput;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;ILorg/apache/cassandra/db/commitlog/CommitLogReader$ReadStatusTracker;Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;)V
        56: .line 252
            aload 13 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.shouldContinue:()Z
            ifne 58
        57: .line 253
            goto 64
        end local 14 // org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment syncSegment
        58: .line 240
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader long org.apache.cassandra.db.commitlog.CommitLogSegmentReader org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 50
        end local 13 // org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker statusTracker
        59: .line 255
            goto 64
        60: .line 258
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader long org.apache.cassandra.db.commitlog.CommitLogSegmentReader
      StackMap stack: java.lang.RuntimeException
            astore 13 /* re */
        start local 13 // java.lang.RuntimeException re
        61: .line 260
            aload 13 /* re */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            instanceof java.io.IOException
            ifeq 63
        62: .line 261
            aload 13 /* re */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            checkcast java.io.IOException
            athrow
        63: .line 262
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 13 /* re */
            athrow
        end local 13 // java.lang.RuntimeException re
        64: .line 264
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            ldc "Finished reading {}"
            aload 2 /* file */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 12 // org.apache.cassandra.db.commitlog.CommitLogSegmentReader segmentReader
        end local 10 // long segmentIdFromFilename
        65: .line 265
            aload 9 /* reader */
            ifnull 71
            aload 9 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
            goto 71
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler java.io.File org.apache.cassandra.db.commitlog.CommitLogPosition int int org.apache.cassandra.db.commitlog.CommitLogDescriptor java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RandomAccessReader
      StackMap stack: java.lang.Throwable
        66: astore 7
            aload 9 /* reader */
            ifnull 67
            aload 9 /* reader */
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.close:()V
        end local 9 // org.apache.cassandra.io.util.RandomAccessReader reader
      StackMap locals:
      StackMap stack:
        67: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        68: astore 8
            aload 7
            ifnonnull 69
            aload 8
            astore 7
            goto 70
      StackMap locals:
      StackMap stack:
        69: aload 7
            aload 8
            if_acmpeq 70
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        70: aload 7
            athrow
        71: .line 266
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
        end local 5 // boolean tolerateTruncation
        end local 4 // int mutationLimit
        end local 3 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
        end local 2 // java.io.File file
        end local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   72     0                   this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            0   72     1                handler  Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;
            0   72     2                   file  Ljava/io/File;
            0   72     3            minPosition  Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
            0   72     4          mutationLimit  I
            0   72     5     tolerateTruncation  Z
            1   72     6                   desc  Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            3   67     9                 reader  Lorg/apache/cassandra/io/util/RandomAccessReader;
            8   10    10          statusTracker  Lorg/apache/cassandra/db/commitlog/CommitLogReader$ReadStatusTracker;
           13   65    10  segmentIdFromFilename  J
           39   40    12          segmentReader  Lorg/apache/cassandra/db/commitlog/CommitLogSegmentReader;
           48   65    12          segmentReader  Lorg/apache/cassandra/db/commitlog/CommitLogSegmentReader;
           41   48    13                      e  Ljava/lang/Exception;
           49   59    13          statusTracker  Lorg/apache/cassandra/db/commitlog/CommitLogReader$ReadStatusTracker;
           51   58    14            syncSegment  Lorg/apache/cassandra/db/commitlog/CommitLogSegmentReader$SyncSegment;
           61   64    13                     re  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          13    14      15  Class java.lang.Exception
          38    39      40  Class java.lang.Exception
          48    59      60  Class java.lang.RuntimeException
           3    10      66  any
          12    23      66  any
          25    33      66  any
          35    36      66  any
          38    46      66  any
          48    65      66  any
           2    11      68  any
          12    24      68  any
          25    34      68  any
          35    37      68  any
          38    47      68  any
          48    68      68  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                    Name  Flags
      handler             
      file                
      minPosition         
      mutationLimit       
      tolerateTruncation  

  private boolean shouldSkipSegmentId(java.io.File, org.apache.cassandra.db.commitlog.CommitLogDescriptor, org.apache.cassandra.db.commitlog.CommitLogPosition);
    descriptor: (Ljava/io/File;Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
        start local 1 // java.io.File file
        start local 2 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
        start local 3 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
         0: .line 273
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            ldc "Reading {} (CL version {}, messaging version {}, compression {})"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 274
            aload 1 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 275
            aload 2 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.version:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
         3: .line 276
            aload 2 /* desc */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogDescriptor.getMessagingVersion:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
         4: .line 277
            aload 2 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.compression:Lorg/apache/cassandra/config/ParameterizedClass;
            aastore
         5: .line 273
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 279
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.segmentId:J
            aload 2 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.id:J
            lcmp
            ifle 9
         7: .line 281
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            ldc "Skipping read of fully-flushed {}"
            aload 1 /* file */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 282
            iconst_1
            ireturn
         9: .line 284
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
        end local 2 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
        end local 1 // java.io.File file
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            0   10     1         file  Ljava/io/File;
            0   10     2         desc  Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            0   10     3  minPosition  Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
    MethodParameters:
             Name  Flags
      file         
      desc         
      minPosition  

  private void readSection(org.apache.cassandra.db.commitlog.CommitLogReadHandler, org.apache.cassandra.io.util.FileDataInput, org.apache.cassandra.db.commitlog.CommitLogPosition, int, org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker, org.apache.cassandra.db.commitlog.CommitLogDescriptor);
    descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;Lorg/apache/cassandra/io/util/FileDataInput;Lorg/apache/cassandra/db/commitlog/CommitLogPosition;ILorg/apache/cassandra/db/commitlog/CommitLogReader$ReadStatusTracker;Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=14, args_size=7
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
        start local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        start local 2 // org.apache.cassandra.io.util.FileDataInput reader
        start local 3 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
        start local 4 // int end
        start local 5 // org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker statusTracker
        start local 6 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
         0: .line 305
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.id:J
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.segmentId:J
            lcmp
            ifne 64
            aload 2 /* reader */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.getFilePointer:()J
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.position:I
            i2l
            lcmp
            ifge 64
         1: .line 306
            aload 2 /* reader */
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.position:I
            i2l
            invokeinterface org.apache.cassandra.io.util.FileDataInput.seek:(J)V
         2: .line 308
            goto 64
         3: .line 310
      StackMap locals:
      StackMap stack:
            aload 2 /* reader */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.getFilePointer:()J
            lstore 7 /* mutationStart */
        start local 7 // long mutationStart
         4: .line 311
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 6
         5: .line 312
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            ldc "Reading mutation at {}"
            lload 7 /* mutationStart */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 323
      StackMap locals: long
      StackMap stack:
            iload 4 /* end */
            i2l
            aload 2 /* reader */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.getFilePointer:()J
            lsub
            ldc 4
            lcmp
            ifge 10
         7: .line 325
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            ldc "Not enough bytes left for another mutation in this CommitLog segment, continuing"
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
         8: .line 326
            aload 5 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.requestTermination:()V
         9: .line 327
            return
        10: .line 331
      StackMap locals:
      StackMap stack:
            aload 2 /* reader */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.readInt:()I
            istore 11 /* serializedSize */
        start local 11 // int serializedSize
        11: .line 332
            iload 11 /* serializedSize */
            ifne 15
        12: .line 334
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            ldc "Encountered end of segment marker at {}"
            aload 2 /* reader */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.getFilePointer:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 335
            aload 5 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.requestTermination:()V
        14: .line 336
            return
        15: .line 344
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler org.apache.cassandra.io.util.FileDataInput org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker org.apache.cassandra.db.commitlog.CommitLogDescriptor long top top int
      StackMap stack:
            iload 11 /* serializedSize */
            bipush 10
            if_icmpge 24
        16: .line 346
            aload 1 /* handler */
            new org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException
            dup
        17: .line 347
            ldc "Invalid mutation size %d at %d in %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 11 /* serializedSize */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            lload 7 /* mutationStart */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 5 /* statusTracker */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.errorContext:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        18: .line 348
            getstatic org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason.MUTATION_ERROR:Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;
        19: .line 349
            aload 5 /* statusTracker */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.tolerateErrorsInSection:Z
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;Z)V
        20: .line 346
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.shouldSkipSegmentOnError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)Z
        21: .line 349
            ifeq 23
        22: .line 351
            aload 5 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.requestTermination:()V
        23: .line 353
      StackMap locals:
      StackMap stack:
            return
        24: .line 356
      StackMap locals:
      StackMap stack:
            aload 2 /* reader */
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.version:I
            invokestatic org.apache.cassandra.db.commitlog.CommitLogReader$CommitLogFormat.calculateClaimedChecksum:(Lorg/apache/cassandra/io/util/FileDataInput;I)J
            lstore 12 /* claimedSizeChecksum */
        start local 12 // long claimedSizeChecksum
        25: .line 357
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.checksum:Ljava/util/zip/CRC32;
            invokevirtual java.util.zip.CRC32.reset:()V
        26: .line 358
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.checksum:Ljava/util/zip/CRC32;
            iload 11 /* serializedSize */
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.version:I
            invokestatic org.apache.cassandra.db.commitlog.CommitLogReader$CommitLogFormat.updateChecksum:(Ljava/util/zip/CRC32;II)V
        27: .line 360
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.checksum:Ljava/util/zip/CRC32;
            invokevirtual java.util.zip.CRC32.getValue:()J
            lload 12 /* claimedSizeChecksum */
            lcmp
            ifeq 36
        28: .line 362
            aload 1 /* handler */
            new org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException
            dup
        29: .line 363
            ldc "Mutation size checksum failure at %d in %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 7 /* mutationStart */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 5 /* statusTracker */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.errorContext:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        30: .line 364
            getstatic org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason.MUTATION_ERROR:Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;
        31: .line 365
            aload 5 /* statusTracker */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.tolerateErrorsInSection:Z
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;Z)V
        32: .line 362
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.shouldSkipSegmentOnError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)Z
        33: .line 365
            ifeq 35
        34: .line 367
            aload 5 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.requestTermination:()V
        35: .line 369
      StackMap locals: long
      StackMap stack:
            return
        36: .line 372
      StackMap locals:
      StackMap stack:
            iload 11 /* serializedSize */
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.buffer:[B
            arraylength
            if_icmple 38
        37: .line 373
            aload 0 /* this */
            ldc 1.2
            iload 11 /* serializedSize */
            i2d
            dmul
            d2i
            newarray 8
            putfield org.apache.cassandra.db.commitlog.CommitLogReader.buffer:[B
        38: .line 374
      StackMap locals:
      StackMap stack:
            aload 2 /* reader */
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.buffer:[B
            iconst_0
            iload 11 /* serializedSize */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.readFully:([BII)V
        39: .line 376
            aload 2 /* reader */
            aload 6 /* desc */
            getfield org.apache.cassandra.db.commitlog.CommitLogDescriptor.version:I
            invokestatic org.apache.cassandra.db.commitlog.CommitLogReader$CommitLogFormat.calculateClaimedCRC32:(Lorg/apache/cassandra/io/util/FileDataInput;I)J
            lstore 9 /* claimedCRC32 */
        end local 12 // long claimedSizeChecksum
        start local 9 // long claimedCRC32
        40: .line 377
            goto 50
        end local 11 // int serializedSize
        end local 9 // long claimedCRC32
        41: .line 378
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler org.apache.cassandra.io.util.FileDataInput org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker org.apache.cassandra.db.commitlog.CommitLogDescriptor long
      StackMap stack: java.io.EOFException
            pop
        42: .line 380
            aload 1 /* handler */
            new org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException
            dup
        43: .line 381
            ldc "Unexpected end of segment at %d in %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 7 /* mutationStart */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 5 /* statusTracker */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.errorContext:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        44: .line 382
            getstatic org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason.EOF:Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;
        45: .line 383
            aload 5 /* statusTracker */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.tolerateErrorsInSection:Z
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;Z)V
        46: .line 380
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.shouldSkipSegmentOnError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)Z
        47: .line 383
            ifeq 49
        48: .line 385
            aload 5 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.requestTermination:()V
        49: .line 387
      StackMap locals:
      StackMap stack:
            return
        start local 9 // long claimedCRC32
        start local 11 // int serializedSize
        50: .line 390
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.checksum:Ljava/util/zip/CRC32;
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.buffer:[B
            iconst_0
            iload 11 /* serializedSize */
            invokevirtual java.util.zip.CRC32.update:([BII)V
        51: .line 391
            lload 9 /* claimedCRC32 */
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.checksum:Ljava/util/zip/CRC32;
            invokevirtual java.util.zip.CRC32.getValue:()J
            lcmp
            ifeq 60
        52: .line 393
            aload 1 /* handler */
            new org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException
            dup
        53: .line 394
            ldc "Mutation checksum failure at %d in %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 7 /* mutationStart */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 5 /* statusTracker */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.errorContext:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        54: .line 395
            getstatic org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason.MUTATION_ERROR:Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;
        55: .line 396
            aload 5 /* statusTracker */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.tolerateErrorsInSection:Z
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;Z)V
        56: .line 393
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.shouldSkipSegmentOnError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)Z
        57: .line 396
            ifeq 64
        58: .line 398
            aload 5 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.requestTermination:()V
        59: .line 400
            goto 64
        60: .line 403
      StackMap locals:
      StackMap stack:
            aload 2 /* reader */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.getFilePointer:()J
            lstore 12 /* mutationPosition */
        start local 12 // long mutationPosition
        61: .line 404
            aload 0 /* this */
            aload 1 /* handler */
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.buffer:[B
            iload 11 /* serializedSize */
            aload 3 /* minPosition */
            lload 12 /* mutationPosition */
            l2i
            aload 6 /* desc */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader.readMutation:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;[BILorg/apache/cassandra/db/commitlog/CommitLogPosition;ILorg/apache/cassandra/db/commitlog/CommitLogDescriptor;)V
        62: .line 408
            lload 12 /* mutationPosition */
            aload 3 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.position:I
            i2l
            lcmp
            iflt 64
        63: .line 409
            aload 5 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.addProcessedMutation:()V
        end local 12 // long mutationPosition
        end local 11 // int serializedSize
        end local 9 // long claimedCRC32
        end local 7 // long mutationStart
        64: .line 308
      StackMap locals:
      StackMap stack:
            aload 5 /* statusTracker */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker.shouldContinue:()Z
            ifeq 65
            aload 2 /* reader */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.getFilePointer:()J
            iload 4 /* end */
            i2l
            lcmp
            ifge 65
            aload 2 /* reader */
            invokeinterface org.apache.cassandra.io.util.FileDataInput.isEOF:()Z
            ifeq 3
        65: .line 411
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
        end local 5 // org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker statusTracker
        end local 4 // int end
        end local 3 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
        end local 2 // org.apache.cassandra.io.util.FileDataInput reader
        end local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   66     0                 this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            0   66     1              handler  Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;
            0   66     2               reader  Lorg/apache/cassandra/io/util/FileDataInput;
            0   66     3          minPosition  Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
            0   66     4                  end  I
            0   66     5        statusTracker  Lorg/apache/cassandra/db/commitlog/CommitLogReader$ReadStatusTracker;
            0   66     6                 desc  Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            4   64     7        mutationStart  J
           40   41     9         claimedCRC32  J
           50   64     9         claimedCRC32  J
           11   41    11       serializedSize  I
           50   64    11       serializedSize  I
           25   40    12  claimedSizeChecksum  J
           61   64    12     mutationPosition  J
      Exception table:
        from    to  target  type
           6     9      41  Class java.io.EOFException
          10    14      41  Class java.io.EOFException
          15    23      41  Class java.io.EOFException
          24    35      41  Class java.io.EOFException
          36    40      41  Class java.io.EOFException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      handler        
      reader         
      minPosition    
      end            
      statusTracker  
      desc           

  protected void readMutation(org.apache.cassandra.db.commitlog.CommitLogReadHandler, byte[], int, org.apache.cassandra.db.commitlog.CommitLogPosition, int, org.apache.cassandra.db.commitlog.CommitLogDescriptor);
    descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;[BILorg/apache/cassandra/db/commitlog/CommitLogPosition;ILorg/apache/cassandra/db/commitlog/CommitLogDescriptor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=14, args_size=7
        start local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
        start local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        start local 2 // byte[] inputBuffer
        start local 3 // int size
        start local 4 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
        start local 5 // int entryLocation
        start local 6 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
         0: .line 433
            iload 5 /* entryLocation */
            aload 4 /* minPosition */
            getfield org.apache.cassandra.db.commitlog.CommitLogPosition.position:I
            if_icmple 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 7 /* shouldReplay */
        start local 7 // boolean shouldReplay
         3: .line 436
            aconst_null
            astore 9
            aconst_null
            astore 10
         4: new org.apache.cassandra.io.util.DataInputBuffer
            dup
            aload 2 /* inputBuffer */
            iconst_0
            iload 3 /* size */
            invokespecial org.apache.cassandra.io.util.DataInputBuffer.<init>:([BII)V
            astore 11 /* bufIn */
        start local 11 // org.apache.cassandra.io.util.RebufferingInputStream bufIn
         5: .line 438
            getstatic org.apache.cassandra.db.Mutation.serializer:Lorg/apache/cassandra/db/Mutation$MutationSerializer;
            aload 11 /* bufIn */
         6: .line 439
            aload 6 /* desc */
            invokevirtual org.apache.cassandra.db.commitlog.CommitLogDescriptor.getMessagingVersion:()I
         7: .line 440
            getstatic org.apache.cassandra.db.rows.SerializationHelper$Flag.LOCAL:Lorg/apache/cassandra/db/rows/SerializationHelper$Flag;
         8: .line 438
            invokevirtual org.apache.cassandra.db.Mutation$MutationSerializer.deserialize:(Lorg/apache/cassandra/io/util/DataInputPlus;ILorg/apache/cassandra/db/rows/SerializationHelper$Flag;)Lorg/apache/cassandra/db/Mutation;
            astore 8 /* mutation */
        start local 8 // org.apache.cassandra.db.Mutation mutation
         9: .line 442
            aload 8 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getPartitionUpdates:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 13
            goto 12
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler byte[] int org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogDescriptor int org.apache.cassandra.db.Mutation java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RebufferingInputStream top java.util.Iterator
      StackMap stack:
        10: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.partitions.PartitionUpdate
            astore 12 /* upd */
        start local 12 // org.apache.cassandra.db.partitions.PartitionUpdate upd
        11: .line 443
            aload 12 /* upd */
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.validate:()V
        end local 12 // org.apache.cassandra.db.partitions.PartitionUpdate upd
        12: .line 442
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        13: .line 444
            aload 11 /* bufIn */
            ifnull 49
            aload 11 /* bufIn */
            invokevirtual org.apache.cassandra.io.util.RebufferingInputStream.close:()V
            goto 49
        end local 8 // org.apache.cassandra.db.Mutation mutation
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler byte[] int org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogDescriptor int top java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.RebufferingInputStream
      StackMap stack: java.lang.Throwable
        14: astore 9
            aload 11 /* bufIn */
            ifnull 15
            aload 11 /* bufIn */
            invokevirtual org.apache.cassandra.io.util.RebufferingInputStream.close:()V
        end local 11 // org.apache.cassandra.io.util.RebufferingInputStream bufIn
      StackMap locals:
      StackMap stack:
        15: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 10
            aload 9
            ifnonnull 17
            aload 10
            astore 9
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 9
            aload 10
            if_acmpeq 18
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 9
            athrow
        19: .line 445
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler byte[] int org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogDescriptor int
      StackMap stack: org.apache.cassandra.db.UnknownColumnFamilyException
            astore 9 /* ex */
        start local 9 // org.apache.cassandra.db.UnknownColumnFamilyException ex
        20: .line 447
            aload 9 /* ex */
            getfield org.apache.cassandra.db.UnknownColumnFamilyException.cfId:Ljava/util/UUID;
            ifnonnull 22
        21: .line 448
            return
        22: .line 449
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler byte[] int org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogDescriptor int top org.apache.cassandra.db.UnknownColumnFamilyException
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.invalidMutations:Ljava/util/Map;
            aload 9 /* ex */
            getfield org.apache.cassandra.db.UnknownColumnFamilyException.cfId:Ljava/util/UUID;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.atomic.AtomicInteger
            astore 10 /* i */
        start local 10 // java.util.concurrent.atomic.AtomicInteger i
        23: .line 450
            aload 10 /* i */
            ifnonnull 27
        24: .line 452
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 10 /* i */
        25: .line 453
            aload 0 /* this */
            getfield org.apache.cassandra.db.commitlog.CommitLogReader.invalidMutations:Ljava/util/Map;
            aload 9 /* ex */
            getfield org.apache.cassandra.db.UnknownColumnFamilyException.cfId:Ljava/util/UUID;
            aload 10 /* i */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 454
            goto 28
        27: .line 456
      StackMap locals: java.util.concurrent.atomic.AtomicInteger
      StackMap stack:
            aload 10 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        28: .line 457
      StackMap locals:
      StackMap stack:
            return
        end local 10 // java.util.concurrent.atomic.AtomicInteger i
        end local 9 // org.apache.cassandra.db.UnknownColumnFamilyException ex
        29: .line 459
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler byte[] int org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogDescriptor int
      StackMap stack: java.lang.Throwable
            astore 9 /* t */
        start local 9 // java.lang.Throwable t
        30: .line 461
            aload 9 /* t */
            invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
        31: .line 462
            ldc "mutation"
            ldc "dat"
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 10 /* f */
        start local 10 // java.io.File f
        32: .line 464
            aconst_null
            astore 11
            aconst_null
            astore 12
        33: new java.io.DataOutputStream
            dup
            new java.io.FileOutputStream
            dup
            aload 10 /* f */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 13 /* out */
        start local 13 // java.io.DataOutputStream out
        34: .line 466
            aload 13 /* out */
            aload 2 /* inputBuffer */
            iconst_0
            iload 3 /* size */
            invokevirtual java.io.DataOutputStream.write:([BII)V
        35: .line 467
            aload 13 /* out */
            ifnull 41
            aload 13 /* out */
            invokevirtual java.io.DataOutputStream.close:()V
            goto 41
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler byte[] int org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogDescriptor int top java.lang.Throwable java.io.File java.lang.Throwable java.lang.Throwable java.io.DataOutputStream
      StackMap stack: java.lang.Throwable
        36: astore 11
            aload 13 /* out */
            ifnull 37
            aload 13 /* out */
            invokevirtual java.io.DataOutputStream.close:()V
        end local 13 // java.io.DataOutputStream out
      StackMap locals:
      StackMap stack:
        37: aload 11
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: astore 12
            aload 11
            ifnonnull 39
            aload 12
            astore 11
            goto 40
      StackMap locals:
      StackMap stack:
        39: aload 11
            aload 12
            if_acmpeq 40
            aload 11
            aload 12
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        40: aload 11
            athrow
        41: .line 470
      StackMap locals:
      StackMap stack:
            aload 1 /* handler */
            new org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException
            dup
        42: .line 472
            ldc "Unexpected error deserializing mutation; saved to %s.  This may be caused by replaying a mutation against a table with the same name but incompatible schema.  Exception follows: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        43: .line 474
            aload 10 /* f */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 9 /* t */
            aastore
        44: .line 471
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        45: .line 475
            getstatic org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason.MUTATION_ERROR:Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;
        46: .line 476
            iconst_0
            invokespecial org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadErrorReason;Z)V
        47: .line 470
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.handleUnrecoverableError:(Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler$CommitLogReadException;)V
        48: .line 477
            return
        end local 10 // java.io.File f
        end local 9 // java.lang.Throwable t
        start local 8 // org.apache.cassandra.db.Mutation mutation
        49: .line 480
      StackMap locals: org.apache.cassandra.db.commitlog.CommitLogReader org.apache.cassandra.db.commitlog.CommitLogReadHandler byte[] int org.apache.cassandra.db.commitlog.CommitLogPosition int org.apache.cassandra.db.commitlog.CommitLogDescriptor int org.apache.cassandra.db.Mutation
      StackMap stack:
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 53
        50: .line 481
            getstatic org.apache.cassandra.db.commitlog.CommitLogReader.logger:Lorg/slf4j/Logger;
            ldc "Read mutation for {}.{}: {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 8 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            aastore
            dup
            iconst_2
        51: .line 482
            new java.lang.StringBuilder
            dup
            ldc "{"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getPartitionUpdates:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            ldc ", "
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/util/Iterator;Ljava/lang/String;)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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        52: .line 481
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        53: .line 484
      StackMap locals:
      StackMap stack:
            iload 7 /* shouldReplay */
            ifeq 55
        54: .line 485
            aload 1 /* handler */
            aload 8 /* mutation */
            iload 3 /* size */
            iload 5 /* entryLocation */
            aload 6 /* desc */
            invokeinterface org.apache.cassandra.db.commitlog.CommitLogReadHandler.handleMutation:(Lorg/apache/cassandra/db/Mutation;IILorg/apache/cassandra/db/commitlog/CommitLogDescriptor;)V
        55: .line 486
      StackMap locals:
      StackMap stack:
            return
        end local 8 // org.apache.cassandra.db.Mutation mutation
        end local 7 // boolean shouldReplay
        end local 6 // org.apache.cassandra.db.commitlog.CommitLogDescriptor desc
        end local 5 // int entryLocation
        end local 4 // org.apache.cassandra.db.commitlog.CommitLogPosition minPosition
        end local 3 // int size
        end local 2 // byte[] inputBuffer
        end local 1 // org.apache.cassandra.db.commitlog.CommitLogReadHandler handler
        end local 0 // org.apache.cassandra.db.commitlog.CommitLogReader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   56     0           this  Lorg/apache/cassandra/db/commitlog/CommitLogReader;
            0   56     1        handler  Lorg/apache/cassandra/db/commitlog/CommitLogReadHandler;
            0   56     2    inputBuffer  [B
            0   56     3           size  I
            0   56     4    minPosition  Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
            0   56     5  entryLocation  I
            0   56     6           desc  Lorg/apache/cassandra/db/commitlog/CommitLogDescriptor;
            3   56     7   shouldReplay  Z
            9   14     8       mutation  Lorg/apache/cassandra/db/Mutation;
           49   56     8       mutation  Lorg/apache/cassandra/db/Mutation;
            5   15    11          bufIn  Lorg/apache/cassandra/io/util/RebufferingInputStream;
           11   12    12            upd  Lorg/apache/cassandra/db/partitions/PartitionUpdate;
           20   29     9             ex  Lorg/apache/cassandra/db/UnknownColumnFamilyException;
           23   29    10              i  Ljava/util/concurrent/atomic/AtomicInteger;
           30   49     9              t  Ljava/lang/Throwable;
           32   49    10              f  Ljava/io/File;
           34   37    13            out  Ljava/io/DataOutputStream;
      Exception table:
        from    to  target  type
           5    13      14  any
           4    16      16  any
           3    19      19  Class org.apache.cassandra.db.UnknownColumnFamilyException
           3    19      29  Class java.lang.Throwable
          34    35      36  any
          33    38      38  any
    Exceptions:
      throws java.io.IOException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    MethodParameters:
               Name  Flags
      handler        
      inputBuffer    
      size           
      minPosition    
      entryLocation  final
      desc           final
}
SourceFile: "CommitLogReader.java"
NestMembers:
  org.apache.cassandra.db.commitlog.CommitLogReader$CommitLogFormat  org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public MutationSerializer = org.apache.cassandra.db.Mutation$MutationSerializer of org.apache.cassandra.db.Mutation
  public final CommitLogReadErrorReason = org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadErrorReason of org.apache.cassandra.db.commitlog.CommitLogReadHandler
  public CommitLogReadException = org.apache.cassandra.db.commitlog.CommitLogReadHandler$CommitLogReadException of org.apache.cassandra.db.commitlog.CommitLogReadHandler
  private CommitLogFormat = org.apache.cassandra.db.commitlog.CommitLogReader$CommitLogFormat of org.apache.cassandra.db.commitlog.CommitLogReader
  private ReadStatusTracker = org.apache.cassandra.db.commitlog.CommitLogReader$ReadStatusTracker of org.apache.cassandra.db.commitlog.CommitLogReader
  public SyncSegment = org.apache.cassandra.db.commitlog.CommitLogSegmentReader$SyncSegment of org.apache.cassandra.db.commitlog.CommitLogSegmentReader
  public final Flag = org.apache.cassandra.db.rows.SerializationHelper$Flag of org.apache.cassandra.db.rows.SerializationHelper