public final class org.glassfish.jersey.message.internal.CommittingOutputStream extends java.io.OutputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.glassfish.jersey.message.internal.CommittingOutputStream
  super_class: java.io.OutputStream
{
  private static final java.util.logging.Logger LOGGER;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.glassfish.jersey.message.internal.OutboundMessageContext$StreamProvider NULL_STREAM_PROVIDER;
    descriptor: Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int DEFAULT_BUFFER_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private java.io.OutputStream adaptedOutput;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.jersey.message.internal.OutboundMessageContext$StreamProvider streamProvider;
    descriptor: Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
    flags: (0x0002) ACC_PRIVATE

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

  private java.io.ByteArrayOutputStream buffer;
    descriptor: Ljava/io/ByteArrayOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private boolean directWrite;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isCommitted;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isClosed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.String STREAM_PROVIDER_NULL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String COMMITTING_STREAM_BUFFERING_ILLEGAL_STATE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 60
            ldc Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic org.glassfish.jersey.message.internal.CommittingOutputStream.LOGGER:Ljava/util/logging/Logger;
         1: .line 65
            invokedynamic getOutputStream()Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
              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:
                  (I)Ljava/io/OutputStream;
                  org/glassfish/jersey/message/internal/CommittingOutputStream.lambda$0(I)Ljava/io/OutputStream; (6)
                  (I)Ljava/io/OutputStream;
         2: .line 64
            putstatic org.glassfish.jersey.message.internal.CommittingOutputStream.NULL_STREAM_PROVIDER:Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
         3: .line 99
            invokestatic org.glassfish.jersey.internal.LocalizationMessages.STREAM_PROVIDER_NULL:()Ljava/lang/String;
            putstatic org.glassfish.jersey.message.internal.CommittingOutputStream.STREAM_PROVIDER_NULL:Ljava/lang/String;
         4: .line 101
            invokestatic org.glassfish.jersey.internal.LocalizationMessages.COMMITTING_STREAM_BUFFERING_ILLEGAL_STATE:()Ljava/lang/String;
         5: .line 100
            putstatic org.glassfish.jersey.message.internal.CommittingOutputStream.COMMITTING_STREAM_BUFFERING_ILLEGAL_STATE:Ljava/lang/String;
         6: .line 101
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
         0: .line 107
            aload 0 /* this */
            invokespecial java.io.OutputStream.<init>:()V
         1: .line 81
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.bufferSize:I
         2: .line 89
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.directWrite:Z
         3: .line 108
            return
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;

  public void setStreamProvider(org.glassfish.jersey.message.internal.OutboundMessageContext$StreamProvider);
    descriptor: (Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
        start local 1 // org.glassfish.jersey.message.internal.OutboundMessageContext$StreamProvider streamProvider
         0: .line 117
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.isClosed:Z
            ifeq 2
         1: .line 118
            new java.lang.IllegalStateException
            dup
            invokestatic org.glassfish.jersey.internal.LocalizationMessages.OUTPUT_STREAM_CLOSED:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 120
      StackMap locals:
      StackMap stack:
            aload 1 /* streamProvider */
            invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
            pop
         3: .line 122
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.streamProvider:Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
            ifnull 5
         4: .line 123
            getstatic org.glassfish.jersey.message.internal.CommittingOutputStream.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            invokestatic org.glassfish.jersey.internal.LocalizationMessages.COMMITTING_STREAM_ALREADY_INITIALIZED:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         5: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* streamProvider */
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.streamProvider:Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
         6: .line 126
            return
        end local 1 // org.glassfish.jersey.message.internal.OutboundMessageContext$StreamProvider streamProvider
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
            0    7     1  streamProvider  Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
    MethodParameters:
                Name  Flags
      streamProvider  

  public void enableBuffering(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
        start local 1 // int bufferSize
         0: .line 136
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.isCommitted:Z
            ifne 2
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            ifnull 1
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
         3: .line 137
      StackMap locals:
      StackMap stack: int
            getstatic org.glassfish.jersey.message.internal.CommittingOutputStream.COMMITTING_STREAM_BUFFERING_ILLEGAL_STATE:Ljava/lang/String;
         4: .line 136
            invokestatic org.glassfish.jersey.internal.guava.Preconditions.checkState:(ZLjava/lang/Object;)V
         5: .line 138
            aload 0 /* this */
            iload 1 /* bufferSize */
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.bufferSize:I
         6: .line 139
            iload 1 /* bufferSize */
            ifgt 10
         7: .line 140
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.directWrite:Z
         8: .line 141
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
         9: .line 142
            goto 12
        10: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.directWrite:Z
        11: .line 144
            aload 0 /* this */
            new java.io.ByteArrayOutputStream
            dup
            iload 1 /* bufferSize */
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
        12: .line 146
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int bufferSize
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
            0   13     1  bufferSize  I
    MethodParameters:
            Name  Flags
      bufferSize  

  void enableBuffering();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
         0: .line 152
            aload 0 /* this */
            sipush 8192
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.enableBuffering:(I)V
         1: .line 153
            return
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;

  public boolean isCommitted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
         0: .line 161
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.isCommitted:Z
            ireturn
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;

  private void commitStream();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
         0: .line 165
            aload 0 /* this */
            iconst_m1
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream:(I)V
         1: .line 166
            return
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
    Exceptions:
      throws java.io.IOException

  private void commitStream(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
        start local 1 // int currentSize
         0: .line 169
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.isCommitted:Z
            ifne 9
         1: .line 170
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.streamProvider:Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
            ifnull 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: getstatic org.glassfish.jersey.message.internal.CommittingOutputStream.STREAM_PROVIDER_NULL:Ljava/lang/String;
            invokestatic org.glassfish.jersey.internal.guava.Preconditions.checkState:(ZLjava/lang/Object;)V
         4: .line 171
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.streamProvider:Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
            iload 1 /* currentSize */
            invokeinterface org.glassfish.jersey.message.internal.OutboundMessageContext$StreamProvider.getOutputStream:(I)Ljava/io/OutputStream;
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
         5: .line 172
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            ifnonnull 7
         6: .line 173
            aload 0 /* this */
            new org.glassfish.jersey.message.internal.NullOutputStream
            dup
            invokespecial org.glassfish.jersey.message.internal.NullOutputStream.<init>:()V
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
         7: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.directWrite:Z
         8: .line 177
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.isCommitted:Z
         9: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int currentSize
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
            0   10     1  currentSize  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      currentSize  

  public void write(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
        start local 1 // byte[] b
         0: .line 183
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.directWrite:Z
            ifeq 4
         1: .line 184
            aload 0 /* this */
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream:()V
         2: .line 185
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            aload 1 /* b */
            invokevirtual java.io.OutputStream.write:([B)V
         3: .line 186
            goto 9
         4: .line 187
      StackMap locals:
      StackMap stack:
            aload 1 /* b */
            arraylength
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            iadd
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.bufferSize:I
            if_icmple 8
         5: .line 188
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.flushBuffer:(Z)V
         6: .line 189
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            aload 1 /* b */
            invokevirtual java.io.OutputStream.write:([B)V
         7: .line 190
            goto 9
         8: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            aload 1 /* b */
            invokevirtual java.io.ByteArrayOutputStream.write:([B)V
         9: .line 194
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] b
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
            0   10     1     b  [B
    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=4, args_size=4
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 198
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.directWrite:Z
            ifeq 4
         1: .line 199
            aload 0 /* this */
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream:()V
         2: .line 200
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.io.OutputStream.write:([BII)V
         3: .line 201
            goto 9
         4: .line 202
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            iadd
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.bufferSize:I
            if_icmple 8
         5: .line 203
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.flushBuffer:(Z)V
         6: .line 204
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.io.OutputStream.write:([BII)V
         7: .line 205
            goto 9
         8: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
         9: .line 209
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
            0   10     1     b  [B
            0   10     2   off  I
            0   10     3   len  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
        start local 1 // int b
         0: .line 213
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.directWrite:Z
            ifeq 4
         1: .line 214
            aload 0 /* this */
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream:()V
         2: .line 215
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            iload 1 /* b */
            invokevirtual java.io.OutputStream.write:(I)V
         3: .line 216
            goto 9
         4: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
            iconst_1
            iadd
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.bufferSize:I
            if_icmple 8
         5: .line 218
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.flushBuffer:(Z)V
         6: .line 219
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            iload 1 /* b */
            invokevirtual java.io.OutputStream.write:(I)V
         7: .line 220
            goto 9
         8: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            iload 1 /* b */
            invokevirtual java.io.ByteArrayOutputStream.write:(I)V
         9: .line 224
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int b
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
            0   10     1     b  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  public void commit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
         0: .line 232
            aload 0 /* this */
            iconst_1
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.flushBuffer:(Z)V
         1: .line 233
            aload 0 /* this */
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream:()V
         2: .line 234
            return
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
         0: .line 238
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.isClosed:Z
            ifeq 2
         1: .line 239
            return
         2: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.isClosed:Z
         3: .line 244
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.streamProvider:Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
            ifnonnull 5
         4: .line 245
            aload 0 /* this */
            getstatic org.glassfish.jersey.message.internal.CommittingOutputStream.NULL_STREAM_PROVIDER:Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
            putfield org.glassfish.jersey.message.internal.CommittingOutputStream.streamProvider:Lorg/glassfish/jersey/message/internal/OutboundMessageContext$StreamProvider;
         5: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.commit:()V
         6: .line 248
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.close:()V
         7: .line 249
            return
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
    Exceptions:
      throws java.io.IOException

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
         0: .line 257
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.isClosed:Z
            ireturn
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
         0: .line 262
            aload 0 /* this */
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.isCommitted:()Z
            ifeq 2
         1: .line 263
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            invokevirtual java.io.OutputStream.flush:()V
         2: .line 265
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
    Exceptions:
      throws java.io.IOException

  private void flushBuffer(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
        start local 1 // boolean endOfStream
         0: .line 268
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.directWrite:Z
            ifne 10
         1: .line 270
            iload 1 /* endOfStream */
            ifeq 6
         2: .line 271
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            ifnonnull 3
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            invokevirtual java.io.ByteArrayOutputStream.size:()I
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* currentSize */
        start local 2 // int currentSize
         5: .line 272
            goto 7
        end local 2 // int currentSize
         6: .line 273
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 2 /* currentSize */
        start local 2 // int currentSize
         7: .line 276
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 2 /* currentSize */
            invokevirtual org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream:(I)V
         8: .line 277
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            ifnull 10
         9: .line 278
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.buffer:Ljava/io/ByteArrayOutputStream;
            aload 0 /* this */
            getfield org.glassfish.jersey.message.internal.CommittingOutputStream.adaptedOutput:Ljava/io/OutputStream;
            invokevirtual java.io.ByteArrayOutputStream.writeTo:(Ljava/io/OutputStream;)V
        end local 2 // int currentSize
        10: .line 281
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean endOfStream
        end local 0 // org.glassfish.jersey.message.internal.CommittingOutputStream this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lorg/glassfish/jersey/message/internal/CommittingOutputStream;
            0   11     1  endOfStream  Z
            5    6     2  currentSize  I
            7   10     2  currentSize  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      endOfStream  

  private static java.io.OutputStream lambda$0(int);
    descriptor: (I)Ljava/io/OutputStream;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int contentLength
         0: .line 65
            new org.glassfish.jersey.message.internal.NullOutputStream
            dup
            invokespecial org.glassfish.jersey.message.internal.NullOutputStream.<init>:()V
            areturn
        end local 0 // int contentLength
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0  contentLength  I
    Exceptions:
      throws java.io.IOException
}
SourceFile: "CommittingOutputStream.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract StreamProvider = org.glassfish.jersey.message.internal.OutboundMessageContext$StreamProvider of org.glassfish.jersey.message.internal.OutboundMessageContext