public class org.apache.cassandra.io.util.SequentialWriter extends org.apache.cassandra.io.util.BufferedDataOutputStreamPlus implements org.apache.cassandra.utils.concurrent.Transactional
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.io.util.SequentialWriter
  super_class: org.apache.cassandra.io.util.BufferedDataOutputStreamPlus
{
  private final java.lang.String filePath;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected long bufferOffset;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  protected final java.nio.channels.FileChannel fchannel;
    descriptor: Ljava/nio/channels/FileChannel;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

  private int bytesSinceTrickleFsync;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  protected long lastFlushOffset;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.Runnable runPostFlush;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0004) ACC_PROTECTED

  private final org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy txnProxy;
    descriptor: Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
    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 36
            ldc Lorg/apache/cassandra/io/util/SequentialWriter;
            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.SequentialWriter.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.nio.channels.FileChannel openChannel(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/nio/channels/FileChannel;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.io.File file
         0: .line 98
            aload 0 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 3
         1: .line 100
            aload 0 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            iconst_2
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
         2: areturn
         3: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            iconst_3
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_2
            getstatic java.nio.file.StandardOpenOption.CREATE_NEW:Ljava/nio/file/StandardOpenOption;
            aastore
            invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
            astore 1 /* channel */
        start local 1 // java.nio.channels.FileChannel channel
         4: .line 107
            aload 0 /* file */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokestatic org.apache.cassandra.utils.SyncUtil.trySyncDir:(Ljava/io/File;)V
         5: .line 108
            goto 11
         6: .line 109
      StackMap locals: java.io.File java.nio.channels.FileChannel
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
         7: .line 111
            aload 1 /* channel */
            invokevirtual java.nio.channels.FileChannel.close:()V
         8: goto 11
         9: .line 112
      StackMap locals: java.io.File java.nio.channels.FileChannel java.lang.Throwable
      StackMap stack: java.lang.Throwable
            astore 3 /* t2 */
        start local 3 // java.lang.Throwable t2
        10: aload 2 /* t */
            aload 3 /* t2 */
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable t2
        end local 2 // java.lang.Throwable t
        11: .line 114
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
        12: areturn
        end local 1 // java.nio.channels.FileChannel channel
        13: .line 117
      StackMap locals: java.io.File
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        14: .line 119
            new java.lang.RuntimeException
            dup
            aload 1 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     file  Ljava/io/File;
            4   13     1  channel  Ljava/nio/channels/FileChannel;
            7   11     2        t  Ljava/lang/Throwable;
           10   11     3       t2  Ljava/lang/Throwable;
           14   15     1        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Throwable
           7     8       9  Class java.lang.Throwable
           0     2      13  Class java.io.IOException
           3    12      13  Class java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public void <init>(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // java.io.File file
         0: .line 130
            aload 0 /* this */
            aload 1 /* file */
            getstatic org.apache.cassandra.io.util.SequentialWriterOption.DEFAULT:Lorg/apache/cassandra/io/util/SequentialWriterOption;
            invokespecial org.apache.cassandra.io.util.SequentialWriter.<init>:(Ljava/io/File;Lorg/apache/cassandra/io/util/SequentialWriterOption;)V
         1: .line 131
            return
        end local 1 // java.io.File file
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0    2     1  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      file  

  public void <init>(java.io.File, org.apache.cassandra.io.util.SequentialWriterOption);
    descriptor: (Ljava/io/File;Lorg/apache/cassandra/io/util/SequentialWriterOption;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // java.io.File file
        start local 2 // org.apache.cassandra.io.util.SequentialWriterOption option
         0: .line 141
            aload 0 /* this */
            aload 1 /* file */
            invokestatic org.apache.cassandra.io.util.SequentialWriter.openChannel:(Ljava/io/File;)Ljava/nio/channels/FileChannel;
            aload 2 /* option */
            invokevirtual org.apache.cassandra.io.util.SequentialWriterOption.allocateBuffer:()Ljava/nio/ByteBuffer;
            invokespecial org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.<init>:(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
         1: .line 49
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.io.util.SequentialWriter.bytesSinceTrickleFsync:I
         2: .line 55
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.txnProxy:()Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
            putfield org.apache.cassandra.io.util.SequentialWriter.txnProxy:Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
         3: .line 142
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.io.util.SequentialWriter.strictFlushing:Z
         4: .line 143
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.channel:Ljava/nio/channels/WritableByteChannel;
            checkcast java.nio.channels.FileChannel
            putfield org.apache.cassandra.io.util.SequentialWriter.fchannel:Ljava/nio/channels/FileChannel;
         5: .line 145
            aload 0 /* this */
            aload 1 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            putfield org.apache.cassandra.io.util.SequentialWriter.filePath:Ljava/lang/String;
         6: .line 147
            aload 0 /* this */
            aload 2 /* option */
            putfield org.apache.cassandra.io.util.SequentialWriter.option:Lorg/apache/cassandra/io/util/SequentialWriterOption;
         7: .line 148
            return
        end local 2 // org.apache.cassandra.io.util.SequentialWriterOption option
        end local 1 // java.io.File file
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0    8     1    file  Ljava/io/File;
            0    8     2  option  Lorg/apache/cassandra/io/util/SequentialWriterOption;
    MethodParameters:
        Name  Flags
      file    
      option  

  public void skipBytes(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // int numBytes
         0: .line 152
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.flush:()V
         1: .line 153
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.fchannel:Ljava/nio/channels/FileChannel;
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.fchannel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            iload 1 /* numBytes */
            i2l
            ladd
            invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
            pop
         2: .line 154
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.fchannel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.position:()J
            putfield org.apache.cassandra.io.util.SequentialWriter.bufferOffset:J
         3: .line 155
            return
        end local 1 // int numBytes
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0    4     1  numBytes  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      numBytes  

  public void sync();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 162
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.syncInternal:()V
         1: .line 163
            return
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  protected void syncDataOnlyInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 169
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.fchannel:Ljava/nio/channels/FileChannel;
            iconst_0
            invokestatic org.apache.cassandra.utils.SyncUtil.force:(Ljava/nio/channels/FileChannel;Z)V
         1: .line 170
            goto 4
         2: .line 171
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 173
            new org.apache.cassandra.io.FSWriteError
            dup
            aload 1 /* e */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.getPath:()Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
         4: .line 175
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  protected void syncInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 184
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.doFlush:(I)V
         1: .line 185
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.syncDataOnlyInternal:()V
         2: .line 186
            return
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  protected void doFlush(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // int count
         0: .line 191
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.flushData:()V
         1: .line 193
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.option:Lorg/apache/cassandra/io/util/SequentialWriterOption;
            invokevirtual org.apache.cassandra.io.util.SequentialWriterOption.trickleFsync:()Z
            ifeq 6
         2: .line 195
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.io.util.SequentialWriter.bytesSinceTrickleFsync:I
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            iadd
            putfield org.apache.cassandra.io.util.SequentialWriter.bytesSinceTrickleFsync:I
         3: .line 196
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.bytesSinceTrickleFsync:I
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.option:Lorg/apache/cassandra/io/util/SequentialWriterOption;
            invokevirtual org.apache.cassandra.io.util.SequentialWriterOption.trickleFsyncByteInterval:()I
            if_icmplt 6
         4: .line 198
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.syncDataOnlyInternal:()V
         5: .line 199
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.io.util.SequentialWriter.bytesSinceTrickleFsync:I
         6: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.resetBuffer:()V
         7: .line 205
            return
        end local 1 // int count
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0    8     1  count  I
    MethodParameters:
       Name  Flags
      count  

  public void setPostFlushListener(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // java.lang.Runnable runPostFlush
         0: .line 209
            getstatic org.apache.cassandra.io.util.SequentialWriter.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.runPostFlush:Ljava/lang/Runnable;
            ifnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* runPostFlush */
            putfield org.apache.cassandra.io.util.SequentialWriter.runPostFlush:Ljava/lang/Runnable;
         2: .line 211
            return
        end local 1 // java.lang.Runnable runPostFlush
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0    3     1  runPostFlush  Ljava/lang/Runnable;
    MethodParameters:
              Name  Flags
      runPostFlush  

  protected void flushData();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 221
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         1: .line 222
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.channel:Ljava/nio/channels/WritableByteChannel;
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            pop
         2: .line 223
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.io.util.SequentialWriter.lastFlushOffset:J
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            ladd
            putfield org.apache.cassandra.io.util.SequentialWriter.lastFlushOffset:J
         3: .line 224
            goto 6
         4: .line 225
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         5: .line 227
            new org.apache.cassandra.io.FSWriteError
            dup
            aload 1 /* e */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.getPath:()Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
         6: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.runPostFlush:Ljava/lang/Runnable;
            ifnull 8
         7: .line 230
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.runPostFlush:Ljava/lang/Runnable;
            invokeinterface java.lang.Runnable.run:()V
         8: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;
            5    6     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException

  public boolean hasPosition();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 235
            iconst_1
            ireturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public long position();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 240
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.current:()J
            lreturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public long getOnDiskFilePointer();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 254
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.position:()J
            lreturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public long getEstimatedOnDiskBytesWritten();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 259
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.getOnDiskFilePointer:()J
            lreturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public long length();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 266
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.current:()J
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.fchannel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.size:()J
            invokestatic java.lang.Math.max:(JJ)J
         1: lreturn
         2: .line 268
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 270
            new org.apache.cassandra.io.FSReadError
            dup
            aload 1 /* e */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.getPath:()Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSReadError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  public java.lang.String getPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 276
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.filePath:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  protected void resetBuffer();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 281
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.current:()J
            putfield org.apache.cassandra.io.util.SequentialWriter.bufferOffset:J
         1: .line 282
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         2: .line 283
            return
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  protected long current();
    descriptor: ()J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 287
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.bufferOffset:J
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack: long
         1: aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
      StackMap locals: org.apache.cassandra.io.util.SequentialWriter
      StackMap stack: long int
         2: i2l
            ladd
            lreturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public org.apache.cassandra.io.util.DataPosition mark();
    descriptor: ()Lorg/apache/cassandra/io/util/DataPosition;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 292
            new org.apache.cassandra.io.util.SequentialWriter$BufferedFileWriterMark
            dup
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.current:()J
            invokespecial org.apache.cassandra.io.util.SequentialWriter$BufferedFileWriterMark.<init>:(J)V
            areturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public void resetAndTruncate(org.apache.cassandra.io.util.DataPosition);
    descriptor: (Lorg/apache/cassandra/io/util/DataPosition;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // org.apache.cassandra.io.util.DataPosition mark
         0: .line 301
            getstatic org.apache.cassandra.io.util.SequentialWriter.$assertionsDisabled:Z
            ifne 1
            aload 1 /* mark */
            instanceof org.apache.cassandra.io.util.SequentialWriter$BufferedFileWriterMark
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.current:()J
            lstore 2 /* previous */
        start local 2 // long previous
         2: .line 304
            aload 1 /* mark */
            checkcast org.apache.cassandra.io.util.SequentialWriter$BufferedFileWriterMark
            getfield org.apache.cassandra.io.util.SequentialWriter$BufferedFileWriterMark.pointer:J
            lstore 4 /* truncateTarget */
        start local 4 // long truncateTarget
         3: .line 308
            lload 2 /* previous */
            lload 4 /* truncateTarget */
            lsub
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            lcmp
            ifgt 6
         4: .line 310
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            lload 2 /* previous */
            lload 4 /* truncateTarget */
            lsub
            l2i
            isub
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         5: .line 311
            return
         6: .line 315
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.syncInternal:()V
         7: .line 318
            aload 0 /* this */
            lload 4 /* truncateTarget */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.truncate:(J)V
         8: .line 322
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.fchannel:Ljava/nio/channels/FileChannel;
            lload 4 /* truncateTarget */
            invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
            pop
         9: .line 323
            goto 12
        10: .line 324
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        11: .line 326
            new org.apache.cassandra.io.FSReadError
            dup
            aload 6 /* e */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.getPath:()Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSReadError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 6 // java.io.IOException e
        12: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 4 /* truncateTarget */
            putfield org.apache.cassandra.io.util.SequentialWriter.bufferOffset:J
        13: .line 330
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.resetBuffer:()V
        14: .line 331
            return
        end local 4 // long truncateTarget
        end local 2 // long previous
        end local 1 // org.apache.cassandra.io.util.DataPosition mark
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0   15     1            mark  Lorg/apache/cassandra/io/util/DataPosition;
            2   15     2        previous  J
            3   15     4  truncateTarget  J
           11   12     6               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
    MethodParameters:
      Name  Flags
      mark  

  public long getLastFlushOffset();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 335
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.lastFlushOffset:J
            lreturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public void truncate(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // long toSize
         0: .line 342
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.fchannel:Ljava/nio/channels/FileChannel;
            lload 1 /* toSize */
            invokevirtual java.nio.channels.FileChannel.truncate:(J)Ljava/nio/channels/FileChannel;
            pop
         1: .line 343
            aload 0 /* this */
            lload 1 /* toSize */
            putfield org.apache.cassandra.io.util.SequentialWriter.lastFlushOffset:J
         2: .line 344
            goto 5
         3: .line 345
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         4: .line 347
            new org.apache.cassandra.io.FSWriteError
            dup
            aload 3 /* e */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter.getPath:()Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException e
         5: .line 349
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long toSize
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0    6     1  toSize  J
            4    5     3       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
    MethodParameters:
        Name  Flags
      toSize  

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 353
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.channel:Ljava/nio/channels/WritableByteChannel;
            invokeinterface java.nio.channels.WritableByteChannel.isOpen:()Z
            ireturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public final void prepareToCommit();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 358
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.txnProxy:Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
            invokevirtual org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy.prepareToCommit:()V
         1: .line 359
            return
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public final java.lang.Throwable commit(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // java.lang.Throwable accumulate
         0: .line 363
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.txnProxy:Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
            aload 1 /* accumulate */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy.commit:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            areturn
        end local 1 // java.lang.Throwable accumulate
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0    1     1  accumulate  Ljava/lang/Throwable;
    MethodParameters:
            Name  Flags
      accumulate  

  public final java.lang.Throwable abort(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/Throwable;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
        start local 1 // java.lang.Throwable accumulate
         0: .line 368
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.txnProxy:Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
            aload 1 /* accumulate */
            invokevirtual org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy.abort:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            areturn
        end local 1 // java.lang.Throwable accumulate
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/apache/cassandra/io/util/SequentialWriter;
            0    1     1  accumulate  Ljava/lang/Throwable;
    MethodParameters:
            Name  Flags
      accumulate  

  public final void close();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 374
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.option:Lorg/apache/cassandra/io/util/SequentialWriterOption;
            invokevirtual org.apache.cassandra.io.util.SequentialWriterOption.finishOnClose:()Z
            ifeq 2
         1: .line 375
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.txnProxy:Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
            invokevirtual org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy.finish:()Ljava/lang/Object;
            pop
            goto 3
         2: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.txnProxy:Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
            invokevirtual org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy.close:()V
         3: .line 378
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  public final void finish();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 382
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.SequentialWriter.txnProxy:Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
            invokevirtual org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy.finish:()Ljava/lang/Object;
            pop
         1: .line 383
            return
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;

  protected org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy txnProxy();
    descriptor: ()Lorg/apache/cassandra/io/util/SequentialWriter$TransactionalProxy;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.SequentialWriter this
         0: .line 387
            new org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy.<init>:(Lorg/apache/cassandra/io/util/SequentialWriter;)V
            areturn
        end local 0 // org.apache.cassandra.io.util.SequentialWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/SequentialWriter;
}
SourceFile: "SequentialWriter.java"
NestMembers:
  org.apache.cassandra.io.util.SequentialWriter$BufferedFileWriterMark  org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy
InnerClasses:
  protected BufferedFileWriterMark = org.apache.cassandra.io.util.SequentialWriter$BufferedFileWriterMark of org.apache.cassandra.io.util.SequentialWriter
  protected TransactionalProxy = org.apache.cassandra.io.util.SequentialWriter$TransactionalProxy of org.apache.cassandra.io.util.SequentialWriter