public class org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator implements java.io.Closeable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator
  super_class: java.lang.Object
{
  private final java.util.zip.Checksum checksum;
    descriptor: Ljava/util/zip/Checksum;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.io.util.RandomAccessReader digestReader;
    descriptor: Lorg/apache/cassandra/io/util/RandomAccessReader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.io.util.RandomAccessReader dataReader;
    descriptor: Lorg/apache/cassandra/io/util/RandomAccessReader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.io.sstable.Descriptor descriptor;
    descriptor: Lorg/apache/cassandra/io/sstable/Descriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  public void <init>(org.apache.cassandra.io.sstable.Descriptor);
    descriptor: (Lorg/apache/cassandra/io/sstable/Descriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator this
        start local 1 // org.apache.cassandra.io.sstable.Descriptor descriptor
         0: .line 99
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 101
            aload 0 /* this */
            aload 1 /* descriptor */
            putfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
         2: .line 102
            aload 0 /* this */
            aload 1 /* descriptor */
            getfield org.apache.cassandra.io.sstable.Descriptor.version:Lorg/apache/cassandra/io/sstable/format/Version;
            invokevirtual org.apache.cassandra.io.sstable.format.Version.uncompressedChecksumType:()Lorg/apache/cassandra/utils/ChecksumType;
            invokevirtual org.apache.cassandra.utils.ChecksumType.newInstance:()Ljava/util/zip/Checksum;
            putfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.checksum:Ljava/util/zip/Checksum;
         3: .line 103
            aload 0 /* this */
            new java.io.File
            dup
            aload 1 /* descriptor */
            aload 1 /* descriptor */
            getfield org.apache.cassandra.io.sstable.Descriptor.digestComponent:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic org.apache.cassandra.io.util.RandomAccessReader.open:(Ljava/io/File;)Lorg/apache/cassandra/io/util/RandomAccessReader;
            putfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.digestReader:Lorg/apache/cassandra/io/util/RandomAccessReader;
         4: .line 104
            aload 0 /* this */
            new java.io.File
            dup
            aload 1 /* descriptor */
            getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic org.apache.cassandra.io.util.RandomAccessReader.open:(Ljava/io/File;)Lorg/apache/cassandra/io/util/RandomAccessReader;
            putfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.dataReader:Lorg/apache/cassandra/io/util/RandomAccessReader;
         5: .line 107
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.digestReader:Lorg/apache/cassandra/io/util/RandomAccessReader;
            invokevirtual org.apache.cassandra.io.util.RandomAccessReader.readLine:()Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            putfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.storedDigestValue:J
         6: .line 108
            goto 10
         7: .line 109
      StackMap locals: org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator org.apache.cassandra.io.sstable.Descriptor
      StackMap stack: java.lang.Exception
            pop
         8: .line 111
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.close:()V
         9: .line 113
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Corrupted SSTable : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* descriptor */
            getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 115
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.io.sstable.Descriptor descriptor
        end local 0 // org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/apache/cassandra/io/util/DataIntegrityMetadata$FileDigestValidator;
            0   11     1  descriptor  Lorg/apache/cassandra/io/sstable/Descriptor;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      descriptor  

  public void validate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator this
         0: .line 120
            new java.util.zip.CheckedInputStream
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.dataReader:Lorg/apache/cassandra/io/util/RandomAccessReader;
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.checksum:Ljava/util/zip/Checksum;
            invokespecial java.util.zip.CheckedInputStream.<init>:(Ljava/io/InputStream;Ljava/util/zip/Checksum;)V
            astore 1 /* checkedInputStream */
        start local 1 // java.util.zip.CheckedInputStream checkedInputStream
         1: .line 121
            ldc 65536
            newarray 8
            astore 2 /* chunk */
        start local 2 // byte[] chunk
         2: .line 123
      StackMap locals: java.util.zip.CheckedInputStream byte[]
      StackMap stack:
            aload 1 /* checkedInputStream */
            aload 2 /* chunk */
            invokevirtual java.util.zip.CheckedInputStream.read:([B)I
            ifgt 2
         3: .line 124
            aload 1 /* checkedInputStream */
            invokevirtual java.util.zip.CheckedInputStream.getChecksum:()Ljava/util/zip/Checksum;
            invokeinterface java.util.zip.Checksum.getValue:()J
            lstore 3 /* calculatedDigestValue */
        start local 3 // long calculatedDigestValue
         4: .line 125
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.storedDigestValue:J
            lload 3 /* calculatedDigestValue */
            lcmp
            ifeq 6
         5: .line 127
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Corrupted SSTable : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            getstatic org.apache.cassandra.io.sstable.Component.DATA:Lorg/apache/cassandra/io/sstable/Component;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.filenameFor:(Lorg/apache/cassandra/io/sstable/Component;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 129
      StackMap locals: long
      StackMap stack:
            return
        end local 3 // long calculatedDigestValue
        end local 2 // byte[] chunk
        end local 1 // java.util.zip.CheckedInputStream checkedInputStream
        end local 0 // org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    7     0                   this  Lorg/apache/cassandra/io/util/DataIntegrityMetadata$FileDigestValidator;
            1    7     1     checkedInputStream  Ljava/util/zip/CheckedInputStream;
            2    7     2                  chunk  [B
            4    7     3  calculatedDigestValue  J
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator this
         0: .line 135
            iconst_2
            anewarray org.apache.cassandra.utils.Throwables$DiscreteAction
            dup
            iconst_0
         1: .line 133
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.digestReader:Lorg/apache/cassandra/io/util/RandomAccessReader;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic perform(Lorg/apache/cassandra/io/util/RandomAccessReader;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/io/util/RandomAccessReader.close()V (5)
                  ()V
            aastore
            dup
            iconst_1
         2: .line 134
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator.dataReader:Lorg/apache/cassandra/io/util/RandomAccessReader;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic perform(Lorg/apache/cassandra/io/util/RandomAccessReader;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/io/util/RandomAccessReader.close()V (5)
                  ()V
            aastore
         3: .line 133
            invokestatic org.apache.cassandra.utils.Throwables.perform:([Lorg/apache/cassandra/utils/Throwables$DiscreteAction;)V
            return
        end local 0 // org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/io/util/DataIntegrityMetadata$FileDigestValidator;
}
SourceFile: "DataIntegrityMetadata.java"
NestHost: org.apache.cassandra.io.util.DataIntegrityMetadata
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public FileDigestValidator = org.apache.cassandra.io.util.DataIntegrityMetadata$FileDigestValidator of org.apache.cassandra.io.util.DataIntegrityMetadata
  public abstract DiscreteAction = org.apache.cassandra.utils.Throwables$DiscreteAction of org.apache.cassandra.utils.Throwables