public class org.apache.commons.compress.utils.FixedLengthBlockOutputStream extends java.io.OutputStream implements java.nio.channels.WritableByteChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.compress.utils.FixedLengthBlockOutputStream
  super_class: java.io.OutputStream
{
  private final java.nio.channels.WritableByteChannel out;
    descriptor: Ljava/nio/channels/WritableByteChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int blockSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.nio.ByteBuffer buffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicBoolean closed;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.io.OutputStream, int);
    descriptor: (Ljava/io/OutputStream;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
        start local 1 // java.io.OutputStream os
        start local 2 // int blockSize
         0: .line 62
            aload 0 /* this */
            invokespecial java.io.OutputStream.<init>:()V
         1: .line 55
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
         2: .line 63
            aload 1 /* os */
            instanceof java.io.FileOutputStream
            ifeq 7
         3: .line 64
            aload 1 /* os */
            checkcast java.io.FileOutputStream
            astore 3 /* fileOutputStream */
        start local 3 // java.io.FileOutputStream fileOutputStream
         4: .line 65
            aload 0 /* this */
            aload 3 /* fileOutputStream */
            invokevirtual java.io.FileOutputStream.getChannel:()Ljava/nio/channels/FileChannel;
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.out:Ljava/nio/channels/WritableByteChannel;
         5: .line 66
            aload 0 /* this */
            iload 2 /* blockSize */
            invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
        end local 3 // java.io.FileOutputStream fileOutputStream
         6: .line 67
            goto 9
         7: .line 68
      StackMap locals: org.apache.commons.compress.utils.FixedLengthBlockOutputStream java.io.OutputStream int
      StackMap stack:
            aload 0 /* this */
            new org.apache.commons.compress.utils.FixedLengthBlockOutputStream$BufferAtATimeOutputChannel
            dup
            aload 1 /* os */
            invokespecial org.apache.commons.compress.utils.FixedLengthBlockOutputStream$BufferAtATimeOutputChannel.<init>:(Ljava/io/OutputStream;)V
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.out:Ljava/nio/channels/WritableByteChannel;
         8: .line 69
            aload 0 /* this */
            iload 2 /* blockSize */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
         9: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* blockSize */
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.blockSize:I
        10: .line 72
            return
        end local 2 // int blockSize
        end local 1 // java.io.OutputStream os
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
            0   11     1                os  Ljava/io/OutputStream;
            0   11     2         blockSize  I
            4    6     3  fileOutputStream  Ljava/io/FileOutputStream;
    MethodParameters:
           Name  Flags
      os         
      blockSize  

  public void <init>(java.nio.channels.WritableByteChannel, int);
    descriptor: (Ljava/nio/channels/WritableByteChannel;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
        start local 1 // java.nio.channels.WritableByteChannel out
        start local 2 // int blockSize
         0: .line 78
            aload 0 /* this */
            invokespecial java.io.OutputStream.<init>:()V
         1: .line 55
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
         2: .line 79
            aload 0 /* this */
            aload 1 /* out */
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.out:Ljava/nio/channels/WritableByteChannel;
         3: .line 80
            aload 0 /* this */
            iload 2 /* blockSize */
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.blockSize:I
         4: .line 81
            aload 0 /* this */
            iload 2 /* blockSize */
            invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
            putfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
         5: .line 82
            return
        end local 2 // int blockSize
        end local 1 // java.nio.channels.WritableByteChannel out
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
            0    6     1        out  Ljava/nio/channels/WritableByteChannel;
            0    6     2  blockSize  I
    MethodParameters:
           Name  Flags
      out        
      blockSize  

  private void maybeFlush();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
         0: .line 85
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
         1: .line 86
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.writeBlock:()V
         2: .line 88
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
    Exceptions:
      throws java.io.IOException

  private void writeBlock();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
         0: .line 91
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         1: .line 92
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.out:Ljava/nio/channels/WritableByteChannel;
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 1 /* i */
        start local 1 // int i
         2: .line 93
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            istore 2 /* hasRemaining */
        start local 2 // boolean hasRemaining
         3: .line 94
            iload 1 /* i */
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.blockSize:I
            if_icmpne 4
            iload 2 /* hasRemaining */
            ifeq 9
         4: .line 96
      StackMap locals: int int
      StackMap stack:
            ldc "Failed to write %,d bytes atomically. Only wrote  %,d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 97
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.blockSize:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 1 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         6: .line 96
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         7: .line 95
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         8: .line 98
            new java.io.IOException
            dup
            aload 3 /* msg */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String msg
         9: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        10: .line 101
            return
        end local 2 // boolean hasRemaining
        end local 1 // int i
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
            2   11     1             i  I
            3   11     2  hasRemaining  Z
            8    9     3           msg  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
        start local 1 // int b
         0: .line 105
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.isOpen:()Z
            ifne 2
         1: .line 106
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         2: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            iload 1 /* b */
            i2b
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         3: .line 109
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.maybeFlush:()V
         4: .line 110
            return
        end local 1 // int b
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
            0    5     1     b  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
        start local 1 // byte[] b
        start local 2 // int offset
        start local 3 // int length
         0: .line 114
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.isOpen:()Z
            ifne 2
         1: .line 115
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         2: .line 117
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 4 /* off */
        start local 4 // int off
         3: .line 118
            iload 3 /* length */
            istore 5 /* len */
        start local 5 // int len
         4: .line 119
            goto 10
         5: .line 120
      StackMap locals: int int
      StackMap stack:
            iload 5 /* len */
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* n */
        start local 6 // int n
         6: .line 121
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            aload 1 /* b */
            iload 4 /* off */
            iload 6 /* n */
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
         7: .line 122
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.maybeFlush:()V
         8: .line 123
            iload 5 /* len */
            iload 6 /* n */
            isub
            istore 5 /* len */
         9: .line 124
            iload 4 /* off */
            iload 6 /* n */
            iadd
            istore 4 /* off */
        end local 6 // int n
        10: .line 119
      StackMap locals:
      StackMap stack:
            iload 5 /* len */
            ifgt 5
        11: .line 126
            return
        end local 5 // int len
        end local 4 // int off
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] b
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
            0   12     1       b  [B
            0   12     2  offset  I
            0   12     3  length  I
            3   12     4     off  I
            4   12     5     len  I
            6   10     6       n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      b       
      offset  final
      length  final

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
        start local 1 // java.nio.ByteBuffer src
         0: .line 130
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.isOpen:()Z
            ifne 2
         1: .line 131
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 2 /* srcRemaining */
        start local 2 // int srcRemaining
         3: .line 135
            iload 2 /* srcRemaining */
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            if_icmpge 6
         4: .line 137
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
         5: .line 138
            goto 21
         6: .line 139
      StackMap locals: int
      StackMap stack:
            iload 2 /* srcRemaining */
            istore 3 /* srcLeft */
        start local 3 // int srcLeft
         7: .line 140
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 4 /* savedLimit */
        start local 4 // int savedLimit
         8: .line 143
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            ifeq 18
         9: .line 144
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 5 /* n */
        start local 5 // int n
        10: .line 145
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 5 /* n */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        11: .line 146
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        12: .line 147
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.writeBlock:()V
        13: .line 148
            iload 3 /* srcLeft */
            iload 5 /* n */
            isub
            istore 3 /* srcLeft */
        end local 5 // int n
        14: .line 152
            goto 18
        15: .line 153
      StackMap locals: int int
      StackMap stack:
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.blockSize:I
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        16: .line 154
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.out:Ljava/nio/channels/WritableByteChannel;
            aload 1 /* src */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            pop
        17: .line 155
            iload 3 /* srcLeft */
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.blockSize:I
            isub
            istore 3 /* srcLeft */
        18: .line 152
      StackMap locals:
      StackMap stack:
            iload 3 /* srcLeft */
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.blockSize:I
            if_icmpge 15
        19: .line 158
            aload 1 /* src */
            iload 4 /* savedLimit */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        20: .line 159
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        end local 4 // int savedLimit
        end local 3 // int srcLeft
        21: .line 161
      StackMap locals:
      StackMap stack:
            iload 2 /* srcRemaining */
            ireturn
        end local 2 // int srcRemaining
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0          this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
            0   22     1           src  Ljava/nio/ByteBuffer;
            3   22     2  srcRemaining  I
            7   21     3       srcLeft  I
            8   21     4    savedLimit  I
           10   14     5             n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
         0: .line 166
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.out:Ljava/nio/channels/WritableByteChannel;
            invokeinterface java.nio.channels.WritableByteChannel.isOpen:()Z
            ifne 2
         1: .line 167
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
         2: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;

  public void flushBlock();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
         0: .line 177
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            ifeq 3
         1: .line 178
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.padBlock:()V
         2: .line 179
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.writeBlock:()V
         3: .line 181
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
         0: .line 185
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifeq 7
         1: .line 187
            aload 0 /* this */
            invokevirtual org.apache.commons.compress.utils.FixedLengthBlockOutputStream.flushBlock:()V
         2: .line 188
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 189
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.out:Ljava/nio/channels/WritableByteChannel;
            invokeinterface java.nio.channels.WritableByteChannel.close:()V
         5: .line 190
            aload 1
            athrow
         6: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.out:Ljava/nio/channels/WritableByteChannel;
            invokeinterface java.nio.channels.WritableByteChannel.close:()V
         7: .line 192
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
      Exception table:
        from    to  target  type
           1     3       3  any
    Exceptions:
      throws java.io.IOException

  private void padBlock();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
         0: .line 195
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         1: .line 196
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 1 /* bytesToWrite */
        start local 1 // int bytesToWrite
         2: .line 197
            iload 1 /* bytesToWrite */
            bipush 8
            if_icmple 18
         3: .line 198
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            bipush 7
            iand
            istore 2 /* align */
        start local 2 // int align
         4: .line 199
            iload 2 /* align */
            ifeq 15
         5: .line 200
            bipush 8
            iload 2 /* align */
            isub
            istore 3 /* limit */
        start local 3 // int limit
         6: .line 201
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 10
         8: .line 202
      StackMap locals: org.apache.commons.compress.utils.FixedLengthBlockOutputStream int int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         9: .line 201
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            iload 3 /* limit */
            if_icmplt 8
        end local 4 // int i
        11: .line 204
            iload 1 /* bytesToWrite */
            iload 3 /* limit */
            isub
            istore 1 /* bytesToWrite */
        end local 3 // int limit
        12: .line 207
            goto 15
        13: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            lconst_0
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
        14: .line 209
            iinc 1 /* bytesToWrite */ -8
        15: .line 207
      StackMap locals:
      StackMap stack:
            iload 1 /* bytesToWrite */
            bipush 8
            if_icmpge 13
        end local 2 // int align
        16: .line 212
            goto 18
        17: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        18: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.compress.utils.FixedLengthBlockOutputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 17
        19: .line 215
            return
        end local 1 // int bytesToWrite
        end local 0 // org.apache.commons.compress.utils.FixedLengthBlockOutputStream this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Lorg/apache/commons/compress/utils/FixedLengthBlockOutputStream;
            2   20     1  bytesToWrite  I
            4   16     2         align  I
            6   12     3         limit  I
            7   11     4             i  I
}
SourceFile: "FixedLengthBlockOutputStream.java"
NestMembers:
  org.apache.commons.compress.utils.FixedLengthBlockOutputStream$BufferAtATimeOutputChannel
InnerClasses:
  private BufferAtATimeOutputChannel = org.apache.commons.compress.utils.FixedLengthBlockOutputStream$BufferAtATimeOutputChannel of org.apache.commons.compress.utils.FixedLengthBlockOutputStream