public class org.apache.cassandra.io.util.ChecksumWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.io.util.ChecksumWriter
  super_class: java.lang.Object
{
  private final java.util.zip.CRC32 incrementalChecksum;
    descriptor: Ljava/util/zip/CRC32;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.DataOutput incrementalOut;
    descriptor: Ljava/io/DataOutput;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  public void <init>(java.io.DataOutput);
    descriptor: (Ljava/io/DataOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.ChecksumWriter this
        start local 1 // java.io.DataOutput incrementalOut
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 34
            aload 0 /* this */
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            putfield org.apache.cassandra.io.util.ChecksumWriter.incrementalChecksum:Ljava/util/zip/CRC32;
         2: .line 36
            aload 0 /* this */
            new java.util.zip.CRC32
            dup
            invokespecial java.util.zip.CRC32.<init>:()V
            putfield org.apache.cassandra.io.util.ChecksumWriter.fullChecksum:Ljava/util/zip/CRC32;
         3: .line 40
            aload 0 /* this */
            aload 1 /* incrementalOut */
            putfield org.apache.cassandra.io.util.ChecksumWriter.incrementalOut:Ljava/io/DataOutput;
         4: .line 41
            return
        end local 1 // java.io.DataOutput incrementalOut
        end local 0 // org.apache.cassandra.io.util.ChecksumWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/apache/cassandra/io/util/ChecksumWriter;
            0    5     1  incrementalOut  Ljava/io/DataOutput;
    MethodParameters:
                Name  Flags
      incrementalOut  

  public void writeChunkSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.io.util.ChecksumWriter this
        start local 1 // int length
         0: .line 47
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChecksumWriter.incrementalOut:Ljava/io/DataOutput;
            iload 1 /* length */
            invokeinterface java.io.DataOutput.writeInt:(I)V
         1: .line 48
            goto 4
         2: .line 49
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         3: .line 51
            new java.io.IOError
            dup
            aload 2 /* e */
            invokespecial java.io.IOError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
         4: .line 53
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int length
        end local 0 // org.apache.cassandra.io.util.ChecksumWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/apache/cassandra/io/util/ChecksumWriter;
            0    5     1  length  I
            3    4     2       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
        Name  Flags
      length  

  public void appendDirect(java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.apache.cassandra.io.util.ChecksumWriter this
        start local 1 // java.nio.ByteBuffer bb
        start local 2 // boolean checksumIncrementalResult
         0: .line 66
            aload 1 /* bb */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 3 /* toAppend */
        start local 3 // java.nio.ByteBuffer toAppend
         1: .line 67
            aload 3 /* toAppend */
            invokevirtual java.nio.ByteBuffer.mark:()Ljava/nio/Buffer;
            pop
         2: .line 68
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChecksumWriter.incrementalChecksum:Ljava/util/zip/CRC32;
            aload 3 /* toAppend */
            invokevirtual java.util.zip.CRC32.update:(Ljava/nio/ByteBuffer;)V
         3: .line 69
            aload 3 /* toAppend */
            invokevirtual java.nio.ByteBuffer.reset:()Ljava/nio/Buffer;
            pop
         4: .line 71
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChecksumWriter.incrementalChecksum:Ljava/util/zip/CRC32;
            invokevirtual java.util.zip.CRC32.getValue:()J
            l2i
            istore 4 /* incrementalChecksumValue */
        start local 4 // int incrementalChecksumValue
         5: .line 72
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChecksumWriter.incrementalOut:Ljava/io/DataOutput;
            iload 4 /* incrementalChecksumValue */
            invokeinterface java.io.DataOutput.writeInt:(I)V
         6: .line 74
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChecksumWriter.fullChecksum:Ljava/util/zip/CRC32;
            aload 3 /* toAppend */
            invokevirtual java.util.zip.CRC32.update:(Ljava/nio/ByteBuffer;)V
         7: .line 75
            iload 2 /* checksumIncrementalResult */
            ifeq 12
         8: .line 77
            iconst_4
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 5 /* byteBuffer */
        start local 5 // java.nio.ByteBuffer byteBuffer
         9: .line 78
            aload 5 /* byteBuffer */
            iload 4 /* incrementalChecksumValue */
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        10: .line 79
            getstatic org.apache.cassandra.io.util.ChecksumWriter.$assertionsDisabled:Z
            ifne 11
            aload 5 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            ifeq 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 80
      StackMap locals: java.nio.ByteBuffer int java.nio.ByteBuffer
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChecksumWriter.fullChecksum:Ljava/util/zip/CRC32;
            aload 5 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.array:()[B
            iconst_0
            aload 5 /* byteBuffer */
            invokevirtual java.nio.ByteBuffer.array:()[B
            arraylength
            invokevirtual java.util.zip.CRC32.update:([BII)V
        end local 5 // java.nio.ByteBuffer byteBuffer
        12: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChecksumWriter.incrementalChecksum:Ljava/util/zip/CRC32;
            invokevirtual java.util.zip.CRC32.reset:()V
        end local 4 // int incrementalChecksumValue
        end local 3 // java.nio.ByteBuffer toAppend
        13: .line 84
            goto 16
        14: .line 85
      StackMap locals: org.apache.cassandra.io.util.ChecksumWriter java.nio.ByteBuffer int
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        15: .line 87
            new java.io.IOError
            dup
            aload 3 /* e */
            invokespecial java.io.IOError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
        16: .line 89
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean checksumIncrementalResult
        end local 1 // java.nio.ByteBuffer bb
        end local 0 // org.apache.cassandra.io.util.ChecksumWriter this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   17     0                       this  Lorg/apache/cassandra/io/util/ChecksumWriter;
            0   17     1                         bb  Ljava/nio/ByteBuffer;
            0   17     2  checksumIncrementalResult  Z
            1   13     3                   toAppend  Ljava/nio/ByteBuffer;
            5   13     4   incrementalChecksumValue  I
            9   12     5                 byteBuffer  Ljava/nio/ByteBuffer;
           15   16     3                          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0    13      14  Class java.io.IOException
    MethodParameters:
                           Name  Flags
      bb                         
      checksumIncrementalResult  

  public void writeFullChecksum(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.cassandra.io.util.ChecksumWriter this
        start local 1 // java.io.File digestFile
         0: .line 93
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: aload 1 /* digestFile */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            getstatic com.google.common.base.Charsets.UTF_8:Ljava/nio/charset/Charset;
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic java.nio.file.Files.newBufferedWriter:(Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Ljava/io/BufferedWriter;
            astore 4 /* out */
        start local 4 // java.io.BufferedWriter out
         2: .line 95
            aload 4 /* out */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.ChecksumWriter.fullChecksum:Ljava/util/zip/CRC32;
            invokevirtual java.util.zip.CRC32.getValue:()J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokevirtual java.io.BufferedWriter.write:(Ljava/lang/String;)V
         3: .line 96
            aload 4 /* out */
            ifnull 11
            aload 4 /* out */
            invokevirtual java.io.BufferedWriter.close:()V
            goto 11
      StackMap locals: org.apache.cassandra.io.util.ChecksumWriter java.io.File java.lang.Throwable java.lang.Throwable java.io.BufferedWriter
      StackMap stack: java.lang.Throwable
         4: astore 2
            aload 4 /* out */
            ifnull 5
            aload 4 /* out */
            invokevirtual java.io.BufferedWriter.close:()V
        end local 4 // java.io.BufferedWriter out
      StackMap locals:
      StackMap stack:
         5: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
            aload 2
            ifnonnull 7
            aload 3
            astore 2
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 2
            aload 3
            if_acmpeq 8
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
         9: .line 97
      StackMap locals: org.apache.cassandra.io.util.ChecksumWriter java.io.File
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        10: .line 99
            new org.apache.cassandra.io.FSWriteError
            dup
            aload 2 /* e */
            aload 1 /* digestFile */
            invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/io/File;)V
            athrow
        end local 2 // java.io.IOException e
        11: .line 101
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.File digestFile
        end local 0 // org.apache.cassandra.io.util.ChecksumWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/apache/cassandra/io/util/ChecksumWriter;
            0   12     1  digestFile  Ljava/io/File;
            2    5     4         out  Ljava/io/BufferedWriter;
           10   11     2           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
           0     9       9  Class java.io.IOException
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        javax.annotation.Nonnull()
    RuntimeVisibleParameterAnnotations: 
      0:
        javax.annotation.Nonnull()
    MethodParameters:
            Name  Flags
      digestFile  
}
SourceFile: "ChecksumWriter.java"