public class org.glassfish.grizzly.http.io.OutputBuffer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.grizzly.http.io.OutputBuffer
  super_class: java.lang.Object
{
  protected static final java.util.logging.Logger LOGGER;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  private static final int DEFAULT_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int MAX_CHAR_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int MIN_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 512

  private static final boolean IS_BLOCKING;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.glassfish.grizzly.filterchain.FilterChainContext ctx;
    descriptor: Lorg/glassfish/grizzly/filterchain/FilterChainContext;
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.grizzly.memory.CompositeBuffer compositeBuffer;
    descriptor: Lorg/glassfish/grizzly/memory/CompositeBuffer;
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.grizzly.Buffer currentBuffer;
    descriptor: Lorg/glassfish/grizzly/Buffer;
    flags: (0x0002) ACC_PRIVATE

  private final org.glassfish.grizzly.http.io.TemporaryHeapBuffer temporaryWriteBuffer;
    descriptor: Lorg/glassfish/grizzly/http/io/TemporaryHeapBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.glassfish.grizzly.http.io.OutputBuffer$ByteArrayCloner cloner;
    descriptor: Lorg/glassfish/grizzly/http/io/OutputBuffer$ByteArrayCloner;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener> lifeCycleListeners;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/glassfish/grizzly/http/io/OutputBuffer$LifeCycleListener;>;

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

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

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

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

  private java.nio.charset.CharsetEncoder encoder;
    descriptor: Ljava/nio/charset/CharsetEncoder;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Map<java.lang.String, java.nio.charset.CharsetEncoder> encoders;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/nio/charset/CharsetEncoder;>;

  private char[] charsArray;
    descriptor: [C
    flags: (0x0002) ACC_PRIVATE

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

  private java.nio.CharBuffer charsBuffer;
    descriptor: Ljava/nio/CharBuffer;
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.grizzly.memory.MemoryManager memoryManager;
    descriptor: Lorg/glassfish/grizzly/memory/MemoryManager;
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.grizzly.Connection connection;
    descriptor: Lorg/glassfish/grizzly/Connection;
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.grizzly.WriteHandler handler;
    descriptor: Lorg/glassfish/grizzly/WriteHandler;
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler asyncWriteHandler;
    descriptor: Lorg/glassfish/grizzly/http/io/OutputBuffer$InternalWriteHandler;
    flags: (0x0002) ACC_PRIVATE

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

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

  protected boolean sendfileEnabled;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  private org.glassfish.grizzly.http.HttpHeader outputHeader;
    descriptor: Lorg/glassfish/grizzly/http/HttpHeader;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable writePossibleRunnable;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.grizzly.http.HttpContent$Builder builder;
    descriptor: Lorg/glassfish/grizzly/http/HttpContent$Builder;
    flags: (0x0002) ACC_PRIVATE

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

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

  private org.glassfish.grizzly.http.HttpContext httpContext;
    descriptor: Lorg/glassfish/grizzly/http/HttpContext;
    flags: (0x0002) ACC_PRIVATE

  private java.util.function.Supplier<java.util.Map<java.lang.String, java.lang.String>> trailersSupplier;
    descriptor: Ljava/util/function/Supplier;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;

  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=3, locals=0, args_size=0
         0: .line 77
            ldc Lorg/glassfish/grizzly/http/io/OutputBuffer;
            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.glassfish.grizzly.http.io.OutputBuffer.$assertionsDisabled:Z
         3: .line 79
            ldc Lorg/glassfish/grizzly/http/io/OutputBuffer;
            invokestatic org.glassfish.grizzly.Grizzly.logger:(Ljava/lang/Class;)Ljava/util/logging/Logger;
            putstatic org.glassfish.grizzly.http.io.OutputBuffer.LOGGER:Ljava/util/logging/Logger;
         4: .line 82
            new java.lang.StringBuilder
            dup
            ldc Lorg/glassfish/grizzly/http/io/OutputBuffer;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".default-buffer-size"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 83
            sipush 8192
         6: .line 82
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
         7: .line 81
            putstatic org.glassfish.grizzly.http.io.OutputBuffer.DEFAULT_BUFFER_SIZE:I
         8: .line 86
            new java.lang.StringBuilder
            dup
            ldc Lorg/glassfish/grizzly/http/io/OutputBuffer;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".max-char-buffer-size"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 87
            ldc 65537
        10: .line 86
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
        11: .line 85
            putstatic org.glassfish.grizzly.http.io.OutputBuffer.MAX_CHAR_BUFFER_SIZE:I
        12: .line 96
            new java.lang.StringBuilder
            dup
            ldc Lorg/glassfish/grizzly/http/io/OutputBuffer;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".isBlocking"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
        13: .line 95
            putstatic org.glassfish.grizzly.http.io.OutputBuffer.IS_BLOCKING:Z
        14: .line 96
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 77
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 106
            aload 0 /* this */
         2: .line 107
            new org.glassfish.grizzly.http.io.TemporaryHeapBuffer
            dup
            invokespecial org.glassfish.grizzly.http.io.TemporaryHeapBuffer.<init>:()V
            putfield org.glassfish.grizzly.http.io.OutputBuffer.temporaryWriteBuffer:Lorg/glassfish/grizzly/http/io/TemporaryHeapBuffer;
         3: .line 110
            aload 0 /* this */
            new org.glassfish.grizzly.http.io.OutputBuffer$ByteArrayCloner
            dup
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.temporaryWriteBuffer:Lorg/glassfish/grizzly/http/io/TemporaryHeapBuffer;
            invokespecial org.glassfish.grizzly.http.io.OutputBuffer$ByteArrayCloner.<init>:(Lorg/glassfish/grizzly/http/io/TemporaryHeapBuffer;)V
            putfield org.glassfish.grizzly.http.io.OutputBuffer.cloner:Lorg/glassfish/grizzly/http/io/OutputBuffer$ByteArrayCloner;
         4: .line 112
            aload 0 /* this */
         5: .line 113
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.glassfish.grizzly.http.io.OutputBuffer.lifeCycleListeners:Ljava/util/List;
         6: .line 125
            aload 0 /* this */
         7: .line 126
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.glassfish.grizzly.http.io.OutputBuffer.encoders:Ljava/util/Map;
         8: .line 141
            aload 0 /* this */
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.DEFAULT_BUFFER_SIZE:I
            putfield org.glassfish.grizzly.http.io.OutputBuffer.bufferSize:I
         9: .line 77
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  public void initialize(org.glassfish.grizzly.http.HttpHeader, boolean, org.glassfish.grizzly.filterchain.FilterChainContext);
    descriptor: (Lorg/glassfish/grizzly/http/HttpHeader;ZLorg/glassfish/grizzly/filterchain/FilterChainContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // org.glassfish.grizzly.http.HttpHeader outputHeader
        start local 2 // boolean sendfileEnabled
        start local 3 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
         0: .line 168
            aload 0 /* this */
            aload 1 /* outputHeader */
            putfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
         1: .line 169
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.builder:Lorg/glassfish/grizzly/http/HttpContent$Builder;
            ifnonnull 4
         2: .line 170
            aload 0 /* this */
            aload 1 /* outputHeader */
            invokevirtual org.glassfish.grizzly.http.HttpHeader.httpContentBuilder:()Lorg/glassfish/grizzly/http/HttpContent$Builder;
            putfield org.glassfish.grizzly.http.io.OutputBuffer.builder:Lorg/glassfish/grizzly/http/HttpContent$Builder;
         3: .line 171
            goto 5
         4: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.builder:Lorg/glassfish/grizzly/http/HttpContent$Builder;
            aload 1 /* outputHeader */
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.httpHeader:(Lorg/glassfish/grizzly/http/HttpHeader;)Lorg/glassfish/grizzly/http/HttpContent$Builder;
            pop
         5: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* sendfileEnabled */
            putfield org.glassfish.grizzly.http.io.OutputBuffer.sendfileEnabled:Z
         6: .line 175
            aload 0 /* this */
            aload 3 /* ctx */
            putfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
         7: .line 176
            aload 0 /* this */
            aload 1 /* outputHeader */
            invokevirtual org.glassfish.grizzly.http.HttpHeader.getProcessingState:()Lorg/glassfish/grizzly/http/ProcessingState;
            invokevirtual org.glassfish.grizzly.http.ProcessingState.getHttpContext:()Lorg/glassfish/grizzly/http/HttpContext;
            putfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
         8: .line 177
            aload 0 /* this */
            aload 3 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            putfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
         9: .line 178
            aload 0 /* this */
            aload 3 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMemoryManager:()Lorg/glassfish/grizzly/memory/MemoryManager;
            putfield org.glassfish.grizzly.http.io.OutputBuffer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
        10: .line 179
            return
        end local 3 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 2 // boolean sendfileEnabled
        end local 1 // org.glassfish.grizzly.http.HttpHeader outputHeader
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   11     1     outputHeader  Lorg/glassfish/grizzly/http/HttpHeader;
            0   11     2  sendfileEnabled  Z
            0   11     3              ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
    MethodParameters:
                 Name  Flags
      outputHeader     final
      sendfileEnabled  final
      ctx              final

  public boolean isAsyncEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 196
            iconst_1
            ireturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void setAsyncEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // boolean asyncEnabled
         0: .line 212
            return
        end local 1 // boolean asyncEnabled
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    1     1  asyncEnabled  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      asyncEnabled  

  public void prepareCharacterEncoder();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 216
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.getEncoder:()Ljava/nio/charset/CharsetEncoder;
            pop
         1: .line 217
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  public int getBufferSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 220
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.bufferSize:I
            ireturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  public void registerLifeCycleListener(org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener);
    descriptor: (Lorg/glassfish/grizzly/http/io/OutputBuffer$LifeCycleListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener listener
         0: .line 225
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.lifeCycleListeners:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 226
            return
        end local 1 // org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener listener
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    2     1  listener  Lorg/glassfish/grizzly/http/io/OutputBuffer$LifeCycleListener;
    MethodParameters:
          Name  Flags
      listener  final

  public boolean removeLifeCycleListener(org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener);
    descriptor: (Lorg/glassfish/grizzly/http/io/OutputBuffer$LifeCycleListener;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener listener
         0: .line 230
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.lifeCycleListeners:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener listener
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    1     1  listener  Lorg/glassfish/grizzly/http/io/OutputBuffer$LifeCycleListener;
    MethodParameters:
          Name  Flags
      listener  final

  public void setBufferSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // int bufferSize
         0: .line 235
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.committed:Z
            ifeq 2
         1: .line 236
            return
         2: .line 239
      StackMap locals:
      StackMap stack:
            iload 1 /* bufferSize */
            sipush 512
            invokestatic java.lang.Math.max:(II)I
            istore 2 /* bufferSizeLocal */
        start local 2 // int bufferSizeLocal
         3: .line 241
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnonnull 5
         4: .line 242
            aload 0 /* this */
            iload 2 /* bufferSizeLocal */
            putfield org.glassfish.grizzly.http.io.OutputBuffer.bufferSize:I
         5: .line 245
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            ifnull 11
         6: .line 246
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            arraylength
            iload 2 /* bufferSizeLocal */
            if_icmpge 11
         7: .line 247
            iload 2 /* bufferSizeLocal */
            newarray 5
            astore 3 /* newCharsArray */
        start local 3 // char[] newCharsArray
         8: .line 248
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            iconst_0
            aload 3 /* newCharsArray */
            iconst_0
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 249
            aload 0 /* this */
            aload 3 /* newCharsArray */
            invokestatic java.nio.CharBuffer.wrap:([C)Ljava/nio/CharBuffer;
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsBuffer:Ljava/nio/CharBuffer;
        10: .line 250
            aload 0 /* this */
            aload 3 /* newCharsArray */
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
        end local 3 // char[] newCharsArray
        11: .line 252
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int bufferSizeLocal
        end local 1 // int bufferSize
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   12     1       bufferSize  I
            3   12     2  bufferSizeLocal  I
            8   11     3    newCharsArray  [C
    MethodParameters:
            Name  Flags
      bufferSize  final

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 261
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.committed:Z
            ifeq 2
         1: .line 262
            new java.lang.IllegalStateException
            dup
            ldc "Cannot reset the response as it has already been committed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
         3: .line 267
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnull 5
         4: .line 268
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.clear:()Lorg/glassfish/grizzly/Buffer;
            pop
         5: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
         6: .line 272
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
         7: .line 273
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 282
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
            ireturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  public int getBufferedDataSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 292
            iconst_0
            istore 1 /* size */
        start local 1 // int size
         1: .line 293
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            ifnull 3
         2: .line 294
            iload 1 /* size */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.remaining:()I
            iadd
            istore 1 /* size */
         3: .line 297
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnull 5
         4: .line 298
            iload 1 /* size */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.position:()I
            iadd
            istore 1 /* size */
         5: .line 301
      StackMap locals:
      StackMap stack:
            iload 1 /* size */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            iconst_1
            ishl
            iadd
            istore 1 /* size */
         6: .line 303
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            1    7     1  size  I

  public void recycle();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 313
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
         1: .line 314
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.builder:Lorg/glassfish/grizzly/http/HttpContent$Builder;
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.reset:()V
         2: .line 316
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            ifnull 5
         3: .line 317
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.dispose:()V
         4: .line 318
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
         5: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnull 8
         6: .line 322
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
         7: .line 323
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
         8: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.temporaryWriteBuffer:Lorg/glassfish/grizzly/http/io/TemporaryHeapBuffer;
            invokevirtual org.glassfish.grizzly.http.io.TemporaryHeapBuffer.recycle:()V
         9: .line 328
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            ifnull 16
        10: .line 329
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
        11: .line 331
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            arraylength
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.MAX_CHAR_BUFFER_SIZE:I
            if_icmpge 14
        12: .line 332
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsBuffer:Ljava/nio/CharBuffer;
            invokevirtual java.nio.CharBuffer.clear:()Ljava/nio/Buffer;
            pop
        13: .line 333
            goto 16
        14: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsBuffer:Ljava/nio/CharBuffer;
        15: .line 335
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
        16: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.DEFAULT_BUFFER_SIZE:I
            putfield org.glassfish.grizzly.http.io.OutputBuffer.bufferSize:I
        17: .line 341
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.fileTransferRequested:Z
        18: .line 342
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
        19: .line 343
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
        20: .line 344
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
        21: .line 345
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
        22: .line 346
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
        23: .line 347
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.handler:Lorg/glassfish/grizzly/WriteHandler;
        24: .line 348
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.isNonBlockingWriteGuaranteed:Z
        25: .line 349
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.isLastWriteNonBlocking:Z
        26: .line 350
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.asyncWriteHandler:Lorg/glassfish/grizzly/http/io/OutputBuffer$InternalWriteHandler;
        27: .line 351
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.trailersSupplier:Ljava/util/function/Supplier;
        28: .line 353
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.committed:Z
        29: .line 354
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.finished:Z
        30: .line 355
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
        31: .line 356
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.headersWritten:Z
        32: .line 358
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.lifeCycleListeners:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        33: .line 359
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   34     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  public void endRequest();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 365
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.finished:Z
            ifeq 2
         1: .line 366
            return
         2: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.asyncWriteHandler:Lorg/glassfish/grizzly/http/io/OutputBuffer$InternalWriteHandler;
            astore 1 /* asyncWriteQueueHandlerLocal */
        start local 1 // org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler asyncWriteQueueHandlerLocal
         3: .line 370
            aload 1 /* asyncWriteQueueHandlerLocal */
            ifnull 6
         4: .line 371
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.asyncWriteHandler:Lorg/glassfish/grizzly/http/io/OutputBuffer$InternalWriteHandler;
         5: .line 372
            aload 1 /* asyncWriteQueueHandlerLocal */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler.detach:()V
         6: .line 375
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
            ifne 10
         7: .line 377
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.close:()V
         8: .line 378
            goto 10
      StackMap locals:
      StackMap stack: java.io.IOException
         9: pop
        10: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            ifnull 12
        11: .line 383
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            getstatic org.glassfish.grizzly.http.HttpServerFilter.RESPONSE_COMPLETE_EVENT:Lorg/glassfish/grizzly/filterchain/FilterChainEvent;
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.notifyDownstream:(Lorg/glassfish/grizzly/filterchain/FilterChainEvent;)V
        12: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.grizzly.http.io.OutputBuffer.finished:Z
        13: .line 388
            return
        end local 1 // org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler asyncWriteQueueHandlerLocal
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   14     0                         this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            3   14     1  asyncWriteQueueHandlerLocal  Lorg/glassfish/grizzly/http/io/OutputBuffer$InternalWriteHandler;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
    Exceptions:
      throws java.io.IOException

  public void acknowledge();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 399
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.IS_BLOCKING:Z
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;Z)V
         1: .line 401
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
    Exceptions:
      throws java.io.IOException

  public void writeChar(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // int c
         0: .line 409
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.assertOpen:()V
         1: .line 411
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
            ifeq 3
         2: .line 412
            return
         3: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.updateNonBlockingStatus:()V
         4: .line 417
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCharBuffer:()V
         5: .line 419
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            arraylength
            if_icmpne 7
         6: .line 420
            aload 0 /* this */
            iconst_1
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Z)V
         7: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            aload 0 /* this */
            dup
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            dup_x1
            iconst_1
            iadd
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            iload 1 /* c */
            i2c
            castore
         8: .line 424
            return
        end local 1 // int c
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    9     1     c  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      c     

  public void write(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // char[] cbuf
        start local 2 // int off
        start local 3 // int len
         0: .line 428
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.assertOpen:()V
         1: .line 430
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
            ifne 2
            iload 3 /* len */
            ifne 3
         2: .line 431
      StackMap locals:
      StackMap stack:
            return
         3: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.updateNonBlockingStatus:()V
         4: .line 436
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.writingBytes:()Z
            ifeq 6
         5: .line 437
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBinaryBuffers:(Z)Z
            pop
         6: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCharBuffer:()V
         7: .line 442
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            arraylength
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            isub
            istore 4 /* remaining */
        start local 4 // int remaining
         8: .line 444
            iload 3 /* len */
            iload 4 /* remaining */
            if_icmpgt 12
         9: .line 445
            aload 1 /* cbuf */
            iload 2 /* off */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 446
            aload 0 /* this */
            dup
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            iload 3 /* len */
            iadd
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
        11: .line 447
            goto 21
      StackMap locals: int
      StackMap stack:
        12: iload 3 /* len */
            iload 4 /* remaining */
            isub
            iload 4 /* remaining */
            if_icmpge 19
        13: .line 448
            aload 1 /* cbuf */
            iload 2 /* off */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            iload 4 /* remaining */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        14: .line 449
            aload 0 /* this */
            dup
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            iload 4 /* remaining */
            iadd
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
        15: .line 451
            aload 0 /* this */
            iconst_1
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Z)V
        16: .line 453
            aload 1 /* cbuf */
            iload 2 /* off */
            iload 4 /* remaining */
            iadd
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            iconst_0
            iload 3 /* len */
            iload 4 /* remaining */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 454
            aload 0 /* this */
            iload 3 /* len */
            iload 4 /* remaining */
            isub
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
        18: .line 455
            goto 21
        19: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Z)V
        20: .line 457
            aload 0 /* this */
            aload 1 /* cbuf */
            iload 2 /* off */
            iload 3 /* len */
            invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
            iconst_1
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Ljava/nio/CharBuffer;Z)V
        21: .line 459
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int remaining
        end local 3 // int len
        end local 2 // int off
        end local 1 // char[] cbuf
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0       this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   22     1       cbuf  [C
            0   22     2        off  I
            0   22     3        len  I
            8   22     4  remaining  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      cbuf  
      off   
      len   

  public void write(char[]);
    descriptor: ([C)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // char[] cbuf
         0: .line 462
            aload 0 /* this */
            aload 1 /* cbuf */
            iconst_0
            aload 1 /* cbuf */
            arraylength
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.write:([CII)V
         1: .line 463
            return
        end local 1 // char[] cbuf
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    2     1  cbuf  [C
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      cbuf  final

  public void write(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // java.lang.String str
         0: .line 467
            aload 0 /* this */
            aload 1 /* str */
            iconst_0
            aload 1 /* str */
            invokevirtual java.lang.String.length:()I
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.write:(Ljava/lang/String;II)V
         1: .line 468
            return
        end local 1 // java.lang.String str
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    2     1   str  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   final

  public void write(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // java.lang.String str
        start local 2 // int off
        start local 3 // int len
         0: .line 473
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.assertOpen:()V
         1: .line 475
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
            ifne 2
            iload 3 /* len */
            ifne 3
         2: .line 476
      StackMap locals:
      StackMap stack:
            return
         3: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.updateNonBlockingStatus:()V
         4: .line 481
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.writingBytes:()Z
            ifeq 6
         5: .line 482
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBinaryBuffers:(Z)Z
            pop
         6: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCharBuffer:()V
         7: .line 487
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            arraylength
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            isub
            iload 3 /* len */
            if_icmplt 13
         8: .line 488
            aload 1 /* str */
            iload 2 /* off */
            iload 2 /* off */
            iload 3 /* len */
            iadd
         9: .line 489
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
        10: .line 488
            invokevirtual java.lang.String.getChars:(II[CI)V
        11: .line 490
            aload 0 /* this */
            dup
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            iload 3 /* len */
            iadd
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
        12: .line 492
            return
        13: .line 495
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            istore 4 /* offLocal */
        start local 4 // int offLocal
        14: .line 496
            iload 3 /* len */
            istore 5 /* lenLocal */
        start local 5 // int lenLocal
        15: .line 499
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            arraylength
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            isub
            istore 6 /* remaining */
        start local 6 // int remaining
        16: .line 500
            iload 5 /* lenLocal */
            iload 6 /* remaining */
            invokestatic java.lang.Math.min:(II)I
            istore 7 /* workingLen */
        start local 7 // int workingLen
        17: .line 502
            aload 1 /* str */
            iload 4 /* offLocal */
            iload 4 /* offLocal */
            iload 7 /* workingLen */
            iadd
        18: .line 503
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
        19: .line 502
            invokevirtual java.lang.String.getChars:(II[CI)V
        20: .line 504
            aload 0 /* this */
            dup
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            iload 7 /* workingLen */
            iadd
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
        21: .line 506
            iload 4 /* offLocal */
            iload 7 /* workingLen */
            iadd
            istore 4 /* offLocal */
        22: .line 507
            iload 5 /* lenLocal */
            iload 7 /* workingLen */
            isub
            istore 5 /* lenLocal */
        23: .line 509
            iload 5 /* lenLocal */
            ifle 25
        24: .line 510
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Z)V
        end local 7 // int workingLen
        end local 6 // int remaining
        25: .line 512
      StackMap locals:
      StackMap stack:
            iload 5 /* lenLocal */
        26: .line 498
            ifgt 15
        27: .line 514
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBinaryBuffersIfNeeded:()V
        28: .line 515
            return
        end local 5 // int lenLocal
        end local 4 // int offLocal
        end local 3 // int len
        end local 2 // int off
        end local 1 // java.lang.String str
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   29     1         str  Ljava/lang/String;
            0   29     2         off  I
            0   29     3         len  I
           14   29     4    offLocal  I
           15   29     5    lenLocal  I
           16   25     6   remaining  I
           17   25     7  workingLen  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   final
      off   final
      len   final

  public void writeByte(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // int b
         0: .line 522
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.assertOpen:()V
         1: .line 523
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
            ifeq 3
         2: .line 524
            return
         3: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.updateNonBlockingStatus:()V
         4: .line 529
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.writingChars:()Z
            ifeq 6
         5: .line 530
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Z)V
         6: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCurrentBuffer:()V
         7: .line 535
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 16
         8: .line 536
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.canWritePayloadChunk:()Z
            ifeq 14
         9: .line 537
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.doCommit:()Z
            pop
        10: .line 538
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBinaryBuffers:(Z)Z
            pop
        11: .line 540
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCurrentBuffer:()V
        12: .line 541
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.blockAfterWriteIfNeeded:()V
        13: .line 542
            goto 16
        14: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.finishCurrentBuffer:()V
        15: .line 544
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCurrentBuffer:()V
        16: .line 548
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            iload 1 /* b */
            i2b
            invokeinterface org.glassfish.grizzly.Buffer.put:(B)Lorg/glassfish/grizzly/Buffer;
            pop
        17: .line 549
            return
        end local 1 // int b
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   18     1     b  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     final

  public void write(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // byte[] b
         0: .line 553
            aload 0 /* this */
            aload 1 /* b */
            iconst_0
            aload 1 /* b */
            arraylength
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.write:([BII)V
         1: .line 554
            return
        end local 1 // byte[] b
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    2     1     b  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     final

  public void sendfile(java.io.File, org.glassfish.grizzly.CompletionHandler<org.glassfish.grizzly.WriteResult>);
    descriptor: (Ljava/io/File;Lorg/glassfish/grizzly/CompletionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // java.io.File file
        start local 2 // org.glassfish.grizzly.CompletionHandler handler
         0: .line 572
            aload 1 /* file */
            ifnonnull 2
         1: .line 573
            new java.lang.IllegalArgumentException
            dup
            ldc "Argument 'file' cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* file */
            lconst_0
            aload 1 /* file */
            invokevirtual java.io.File.length:()J
            aload 2 /* handler */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.sendfile:(Ljava/io/File;JJLorg/glassfish/grizzly/CompletionHandler;)V
         3: .line 576
            return
        end local 2 // org.glassfish.grizzly.CompletionHandler handler
        end local 1 // java.io.File file
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    4     1     file  Ljava/io/File;
            0    4     2  handler  Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;
    Signature: (Ljava/io/File;Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;)V
    MethodParameters:
         Name  Flags
      file     final
      handler  final

  public void sendfile(java.io.File, long, long, org.glassfish.grizzly.CompletionHandler<org.glassfish.grizzly.WriteResult>);
    descriptor: (Ljava/io/File;JJLorg/glassfish/grizzly/CompletionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // java.io.File file
        start local 2 // long offset
        start local 4 // long length
        start local 6 // org.glassfish.grizzly.CompletionHandler handler
         0: .line 614
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.sendfileEnabled:Z
            ifne 2
         1: .line 615
            new java.lang.IllegalStateException
            dup
            ldc "sendfile support isn't available."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.fileTransferRequested:Z
            ifeq 4
         3: .line 618
            new java.lang.IllegalStateException
            dup
            ldc "Only one file transfer allowed per request"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.reset:()V
         5: .line 626
            new org.glassfish.grizzly.FileTransfer
            dup
            aload 1 /* file */
            lload 2 /* offset */
            lload 4 /* length */
            invokespecial org.glassfish.grizzly.FileTransfer.<init>:(Ljava/io/File;JJ)V
            astore 7 /* f */
        start local 7 // org.glassfish.grizzly.FileTransfer f
         6: .line 629
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.grizzly.http.io.OutputBuffer.fileTransferRequested:Z
         7: .line 631
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            aload 7 /* f */
            invokevirtual org.glassfish.grizzly.FileTransfer.remaining:()I
            i2l
            invokevirtual org.glassfish.grizzly.http.HttpHeader.setContentLengthLong:(J)V
         8: .line 632
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.getContentType:()Ljava/lang/String;
            ifnonnull 10
         9: .line 633
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            aload 1 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokestatic org.glassfish.grizzly.http.util.MimeType.getByFilename:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.setContentType:(Ljava/lang/String;)V
        10: .line 636
      StackMap locals: org.glassfish.grizzly.FileTransfer
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            getstatic org.glassfish.grizzly.http.util.Header.ContentEncoding:Lorg/glassfish/grizzly/http/util/Header;
            getstatic org.glassfish.grizzly.http.util.HeaderValue.IDENTITY:Lorg/glassfish/grizzly/http/util/HeaderValue;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.setHeader:(Lorg/glassfish/grizzly/http/util/Header;Lorg/glassfish/grizzly/http/util/HeaderValue;)V
        11: .line 639
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flush:()V
        12: .line 640
            goto 26
      StackMap locals:
      StackMap stack: java.io.IOException
        13: astore 8 /* e */
        start local 8 // java.io.IOException e
        14: .line 641
            aload 6 /* handler */
            ifnull 17
        15: .line 642
            aload 6 /* handler */
            aload 8 /* e */
            invokeinterface org.glassfish.grizzly.CompletionHandler.failed:(Ljava/lang/Throwable;)V
        16: .line 643
            goto 25
        17: .line 644
      StackMap locals: java.io.IOException
      StackMap stack:
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 25
        18: .line 645
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
        19: .line 646
            ldc "Failed to transfer file %s.  Cause: %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        20: .line 647
            aload 1 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        21: .line 648
            aload 8 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            aastore
        22: .line 646
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        23: .line 649
            aload 8 /* e */
        24: .line 645
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        25: .line 653
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.io.IOException e
        26: .line 658
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            aload 7 /* f */
            aload 6 /* handler */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;Lorg/glassfish/grizzly/CompletionHandler;)V
        27: .line 659
            return
        end local 7 // org.glassfish.grizzly.FileTransfer f
        end local 6 // org.glassfish.grizzly.CompletionHandler handler
        end local 4 // long length
        end local 2 // long offset
        end local 1 // java.io.File file
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   28     0     this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   28     1     file  Ljava/io/File;
            0   28     2   offset  J
            0   28     4   length  J
            0   28     6  handler  Lorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;
            6   28     7        f  Lorg/glassfish/grizzly/FileTransfer;
           14   26     8        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          11    12      13  Class java.io.IOException
    Signature: (Ljava/io/File;JJLorg/glassfish/grizzly/CompletionHandler<Lorg/glassfish/grizzly/WriteResult;>;)V
    MethodParameters:
         Name  Flags
      file     final
      offset   final
      length   final
      handler  final

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 663
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.assertOpen:()V
         1: .line 664
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
            ifne 2
            iload 3 /* len */
            ifne 3
         2: .line 665
      StackMap locals:
      StackMap stack:
            return
         3: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.updateNonBlockingStatus:()V
         4: .line 670
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.writingChars:()Z
            ifeq 6
         5: .line 671
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Z)V
         6: .line 675
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.bufferSize:I
            iload 3 /* len */
            if_icmplt 12
         7: .line 676
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnull 8
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
            iload 3 /* len */
            if_icmplt 12
         8: .line 677
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCurrentBuffer:()V
         9: .line 679
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnonnull 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 680
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokeinterface org.glassfish.grizzly.Buffer.put:([BII)Lorg/glassfish/grizzly/Buffer;
            pop
        11: .line 681
            goto 30
      StackMap locals:
      StackMap stack:
        12: aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.canWritePayloadChunk:()Z
            ifeq 24
        13: .line 685
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.temporaryWriteBuffer:Lorg/glassfish/grizzly/http/io/TemporaryHeapBuffer;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual org.glassfish.grizzly.http.io.TemporaryHeapBuffer.reset:([BII)V
        14: .line 688
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.finishCurrentBuffer:()V
        15: .line 691
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.doCommit:()Z
            pop
        16: .line 692
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            ifnull 21
        17: .line 693
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.temporaryWriteBuffer:Lorg/glassfish/grizzly/http/io/TemporaryHeapBuffer;
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.append:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/memory/CompositeBuffer;
            pop
        18: .line 695
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            iconst_0
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.cloner:Lorg/glassfish/grizzly/http/io/OutputBuffer$ByteArrayCloner;
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBuffer:(Lorg/glassfish/grizzly/Buffer;ZLorg/glassfish/grizzly/asyncqueue/MessageCloner;)V
        19: .line 696
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
        20: .line 697
            goto 22
        21: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.temporaryWriteBuffer:Lorg/glassfish/grizzly/http/io/TemporaryHeapBuffer;
            iconst_0
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.cloner:Lorg/glassfish/grizzly/http/io/OutputBuffer$ByteArrayCloner;
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBuffer:(Lorg/glassfish/grizzly/Buffer;ZLorg/glassfish/grizzly/asyncqueue/MessageCloner;)V
        22: .line 701
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.blockAfterWriteIfNeeded:()V
        23: .line 702
            goto 30
        24: .line 704
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.finishCurrentBuffer:()V
        25: .line 705
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
            iload 3 /* len */
            invokeinterface org.glassfish.grizzly.memory.MemoryManager.allocate:(I)Lorg/glassfish/grizzly/Buffer;
            astore 4 /* cloneBuffer */
        start local 4 // org.glassfish.grizzly.Buffer cloneBuffer
        26: .line 706
            aload 4 /* cloneBuffer */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokeinterface org.glassfish.grizzly.Buffer.put:([BII)Lorg/glassfish/grizzly/Buffer;
            pop
        27: .line 707
            aload 4 /* cloneBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.flip:()Lorg/glassfish/grizzly/Buffer;
            pop
        28: .line 708
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCompositeBuffer:()V
        29: .line 710
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            aload 4 /* cloneBuffer */
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.append:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/memory/CompositeBuffer;
            pop
        end local 4 // org.glassfish.grizzly.Buffer cloneBuffer
        30: .line 712
      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.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   31     0         this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   31     1            b  [B
            0   31     2          off  I
            0   31     3          len  I
           26   30     4  cloneBuffer  Lorg/glassfish/grizzly/Buffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     final
      off   final
      len   final

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 720
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
            ifeq 2
         1: .line 721
            return
         2: .line 723
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.grizzly.http.io.OutputBuffer.closed:Z
         3: .line 725
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.assertOpen:()V
         4: .line 728
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.doCommit:()Z
            istore 1 /* isJustCommitted */
        start local 1 // boolean isJustCommitted
         5: .line 730
            aload 0 /* this */
            iconst_1
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushAllBuffers:(Z)Z
            ifne 7
            iload 1 /* isJustCommitted */
            ifne 6
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.isChunked:()Z
            ifeq 7
         6: .line 734
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.forceCommitHeaders:(Z)V
         7: .line 737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.blockAfterWriteIfNeeded:()V
         8: .line 738
            return
        end local 1 // boolean isJustCommitted
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            5    9     1  isJustCommitted  Z
    Exceptions:
      throws java.io.IOException

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 749
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.assertOpen:()V
         1: .line 751
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.doCommit:()Z
            istore 1 /* isJustCommitted */
        start local 1 // boolean isJustCommitted
         2: .line 752
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushAllBuffers:(Z)Z
            ifne 4
            iload 1 /* isJustCommitted */
            ifeq 4
         3: .line 753
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.forceCommitHeaders:(Z)V
         4: .line 756
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.blockAfterWriteIfNeeded:()V
         5: .line 757
            return
        end local 1 // boolean isJustCommitted
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            2    6     1  isJustCommitted  Z
    Exceptions:
      throws java.io.IOException

  public void writeByteBuffer(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // java.nio.ByteBuffer byteBuffer
         0: .line 773
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
            aload 1 /* byteBuffer */
            invokestatic org.glassfish.grizzly.memory.Buffers.wrap:(Lorg/glassfish/grizzly/memory/MemoryManager;Ljava/nio/ByteBuffer;)Lorg/glassfish/grizzly/Buffer;
            astore 2 /* w */
        start local 2 // org.glassfish.grizzly.Buffer w
         1: .line 774
            aload 2 /* w */
            iconst_0
            invokeinterface org.glassfish.grizzly.Buffer.allowBufferDispose:(Z)V
         2: .line 775
            aload 0 /* this */
            aload 2 /* w */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.writeBuffer:(Lorg/glassfish/grizzly/Buffer;)V
         3: .line 776
            return
        end local 2 // org.glassfish.grizzly.Buffer w
        end local 1 // java.nio.ByteBuffer byteBuffer
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    4     1  byteBuffer  Ljava/nio/ByteBuffer;
            1    4     2           w  Lorg/glassfish/grizzly/Buffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      byteBuffer  final

  public void writeBuffer(org.glassfish.grizzly.Buffer);
    descriptor: (Lorg/glassfish/grizzly/Buffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // org.glassfish.grizzly.Buffer buffer
         0: .line 791
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.assertOpen:()V
         1: .line 793
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.updateNonBlockingStatus:()V
         2: .line 795
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.finishCurrentBuffer:()V
         3: .line 796
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCompositeBuffer:()V
         4: .line 797
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            aload 1 /* buffer */
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.append:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/memory/CompositeBuffer;
            pop
         5: .line 799
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.canWritePayloadChunk:()Z
            ifeq 8
         6: .line 800
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.remaining:()I
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.bufferSize:I
            if_icmple 8
         7: .line 801
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flush:()V
         8: .line 803
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.glassfish.grizzly.Buffer buffer
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    9     1  buffer  Lorg/glassfish/grizzly/Buffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      buffer  final

  public boolean canWriteChar(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // int length
         0: .line 811
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.canWrite:()Z
            ireturn
        end local 1 // int length
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    1     1  length  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      length  final

  public boolean canWrite(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // int length
         0: .line 821
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.canWrite:()Z
            ireturn
        end local 1 // int length
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    1     1  length  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      length  final

  public boolean canWrite();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 828
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.IS_BLOCKING:Z
            ifne 1
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.isNonBlockingWriteGuaranteed:Z
            ifeq 2
         1: .line 829
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 832
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
            invokevirtual org.glassfish.grizzly.http.HttpContext.getOutputSink:()Lorg/glassfish/grizzly/OutputSink;
            invokeinterface org.glassfish.grizzly.OutputSink.canWrite:()Z
            ifeq 5
         3: .line 833
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.grizzly.http.io.OutputBuffer.isNonBlockingWriteGuaranteed:Z
         4: .line 834
            iconst_1
            ireturn
         5: .line 836
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  public void notifyCanWrite(org.glassfish.grizzly.WriteHandler, int);
    descriptor: (Lorg/glassfish/grizzly/WriteHandler;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // org.glassfish.grizzly.WriteHandler handler
        start local 2 // int length
         0: .line 847
            aload 0 /* this */
            aload 1 /* handler */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.notifyCanWrite:(Lorg/glassfish/grizzly/WriteHandler;)V
         1: .line 848
            return
        end local 2 // int length
        end local 1 // org.glassfish.grizzly.WriteHandler handler
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    2     1  handler  Lorg/glassfish/grizzly/WriteHandler;
            0    2     2   length  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      handler  final
      length   final

  public void notifyCanWrite(org.glassfish.grizzly.WriteHandler);
    descriptor: (Lorg/glassfish/grizzly/WriteHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // org.glassfish.grizzly.WriteHandler handler
         0: .line 851
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.handler:Lorg/glassfish/grizzly/WriteHandler;
            ifnull 2
         1: .line 852
            new java.lang.IllegalStateException
            dup
            ldc "Illegal attempt to set a new handler before the existing handler has been notified."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 855
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
            invokevirtual org.glassfish.grizzly.http.HttpContext.getCloseable:()Lorg/glassfish/grizzly/Closeable;
            invokeinterface org.glassfish.grizzly.Closeable.isOpen:()Z
            ifne 5
         3: .line 856
            aload 1 /* handler */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.getCloseReason:()Lorg/glassfish/grizzly/CloseReason;
            invokevirtual org.glassfish.grizzly.CloseReason.getCause:()Ljava/io/IOException;
            invokeinterface org.glassfish.grizzly.WriteHandler.onError:(Ljava/lang/Throwable;)V
         4: .line 857
            return
         5: .line 860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* handler */
            putfield org.glassfish.grizzly.http.io.OutputBuffer.handler:Lorg/glassfish/grizzly/WriteHandler;
         6: .line 862
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.isNonBlockingWriteGuaranteed:Z
            ifne 7
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.canWrite:()Z
            ifeq 13
         7: .line 863
      StackMap locals:
      StackMap stack:
            invokestatic org.glassfish.grizzly.Writer$Reentrant.getWriteReentrant:()Lorg/glassfish/grizzly/Writer$Reentrant;
            astore 2 /* reentrant */
        start local 2 // org.glassfish.grizzly.Writer$Reentrant reentrant
         8: .line 864
            aload 2 /* reentrant */
            invokevirtual org.glassfish.grizzly.Writer$Reentrant.isMaxReentrantsReached:()Z
            ifne 11
         9: .line 865
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.notifyWritePossible:()V
        10: .line 866
            goto 12
        11: .line 867
      StackMap locals: org.glassfish.grizzly.Writer$Reentrant
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.notifyWritePossibleAsync:()V
        12: .line 870
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.glassfish.grizzly.Writer$Reentrant reentrant
        13: .line 874
      StackMap locals:
      StackMap stack:
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.$assertionsDisabled:Z
            ifne 14
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.IS_BLOCKING:Z
            ifeq 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 876
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.asyncWriteHandler:Lorg/glassfish/grizzly/http/io/OutputBuffer$InternalWriteHandler;
            ifnonnull 16
        15: .line 877
            aload 0 /* this */
            new org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler
            dup
            aload 0 /* this */
            invokespecial org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler.<init>:(Lorg/glassfish/grizzly/http/io/OutputBuffer;)V
            putfield org.glassfish.grizzly.http.io.OutputBuffer.asyncWriteHandler:Lorg/glassfish/grizzly/http/io/OutputBuffer$InternalWriteHandler;
        16: .line 883
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
            invokevirtual org.glassfish.grizzly.http.HttpContext.getOutputSink:()Lorg/glassfish/grizzly/OutputSink;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.asyncWriteHandler:Lorg/glassfish/grizzly/http/io/OutputBuffer$InternalWriteHandler;
            invokeinterface org.glassfish.grizzly.OutputSink.notifyCanWrite:(Lorg/glassfish/grizzly/WriteHandler;)V
        17: .line 884
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Exception
        18: pop
        19: .line 886
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.glassfish.grizzly.WriteHandler handler
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   20     1    handler  Lorg/glassfish/grizzly/WriteHandler;
            8   13     2  reentrant  Lorg/glassfish/grizzly/Writer$Reentrant;
      Exception table:
        from    to  target  type
          16    17      18  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      handler  final

  public void setTrailers(java.util.function.Supplier<java.util.Map<java.lang.String, java.lang.String>>);
    descriptor: (Ljava/util/function/Supplier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // java.util.function.Supplier trailersSupplier
         0: .line 890
            aload 0 /* this */
            aload 1 /* trailersSupplier */
            putfield org.glassfish.grizzly.http.io.OutputBuffer.trailersSupplier:Ljava/util/function/Supplier;
         1: .line 891
            return
        end local 1 // java.util.function.Supplier trailersSupplier
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    2     1  trailersSupplier  Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;
    Signature: (Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;)V
    MethodParameters:
                  Name  Flags
      trailersSupplier  

  public java.util.function.Supplier<java.util.Map<java.lang.String, java.lang.String>> getTrailers();
    descriptor: ()Ljava/util/function/Supplier;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 894
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.trailersSupplier:Ljava/util/function/Supplier;
            areturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
    Signature: ()Ljava/util/function/Supplier<Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;>;

  protected java.util.concurrent.Executor getThreadPool();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 902
            invokestatic org.glassfish.grizzly.threadpool.Threads.isService:()Z
            ifne 2
         1: .line 903
            aconst_null
            areturn
         2: .line 906
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.getTransport:()Lorg/glassfish/grizzly/Transport;
            invokeinterface org.glassfish.grizzly.Transport.getWorkerThreadPool:()Ljava/util/concurrent/ExecutorService;
            astore 1 /* es */
        start local 1 // java.util.concurrent.ExecutorService es
         3: .line 907
            aload 1 /* es */
            ifnull 4
            aload 1 /* es */
            invokeinterface java.util.concurrent.ExecutorService.isShutdown:()Z
            ifne 4
            aload 1 /* es */
            goto 5
      StackMap locals: java.util.concurrent.ExecutorService
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutorService
         5: areturn
        end local 1 // java.util.concurrent.ExecutorService es
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            3    6     1    es  Ljava/util/concurrent/ExecutorService;

  private void notifyWritePossibleAsync();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 915
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.writePossibleRunnable:Ljava/lang/Runnable;
            ifnonnull 2
         1: .line 916
            aload 0 /* this */
            new org.glassfish.grizzly.http.io.OutputBuffer$1
            dup
            aload 0 /* this */
            invokespecial org.glassfish.grizzly.http.io.OutputBuffer$1.<init>:(Lorg/glassfish/grizzly/http/io/OutputBuffer;)V
            putfield org.glassfish.grizzly.http.io.OutputBuffer.writePossibleRunnable:Ljava/lang/Runnable;
         2: .line 924
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            getstatic org.glassfish.grizzly.IOEvent.WRITE:Lorg/glassfish/grizzly/IOEvent;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.writePossibleRunnable:Ljava/lang/Runnable;
            invokeinterface org.glassfish.grizzly.Connection.executeInEventThread:(Lorg/glassfish/grizzly/IOEvent;Ljava/lang/Runnable;)V
         3: .line 925
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  private void notifyWritePossible();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 931
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.handler:Lorg/glassfish/grizzly/WriteHandler;
            astore 1 /* localHandler */
        start local 1 // org.glassfish.grizzly.WriteHandler localHandler
         1: .line 933
            aload 1 /* localHandler */
            ifnull 15
         2: .line 934
            invokestatic org.glassfish.grizzly.Writer$Reentrant.getWriteReentrant:()Lorg/glassfish/grizzly/Writer$Reentrant;
            astore 2 /* reentrant */
        start local 2 // org.glassfish.grizzly.Writer$Reentrant reentrant
         3: .line 937
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.handler:Lorg/glassfish/grizzly/WriteHandler;
         4: .line 938
            aload 2 /* reentrant */
            invokevirtual org.glassfish.grizzly.Writer$Reentrant.inc:()Z
            pop
         5: .line 940
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.grizzly.http.io.OutputBuffer.isNonBlockingWriteGuaranteed:Z
         6: .line 942
            aload 1 /* localHandler */
            invokeinterface org.glassfish.grizzly.WriteHandler.onWritePossible:()V
         7: .line 943
            goto 14
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer org.glassfish.grizzly.WriteHandler org.glassfish.grizzly.Writer$Reentrant
      StackMap stack: java.lang.Throwable
         8: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         9: .line 944
            aload 1 /* localHandler */
            aload 3 /* t */
            invokeinterface org.glassfish.grizzly.WriteHandler.onError:(Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable t
        10: .line 946
            aload 2 /* reentrant */
            invokevirtual org.glassfish.grizzly.Writer$Reentrant.dec:()Z
            pop
            goto 15
        11: .line 945
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        12: .line 946
            aload 2 /* reentrant */
            invokevirtual org.glassfish.grizzly.Writer$Reentrant.dec:()Z
            pop
        13: .line 947
            aload 4
            athrow
        14: .line 946
      StackMap locals:
      StackMap stack:
            aload 2 /* reentrant */
            invokevirtual org.glassfish.grizzly.Writer$Reentrant.dec:()Z
            pop
        end local 2 // org.glassfish.grizzly.Writer$Reentrant reentrant
        15: .line 949
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.glassfish.grizzly.WriteHandler localHandler
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            1   16     1  localHandler  Lorg/glassfish/grizzly/WriteHandler;
            3   15     2     reentrant  Lorg/glassfish/grizzly/Writer$Reentrant;
            9   10     3             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     7       8  Class java.lang.Throwable
           3    10      11  any

  private boolean canWritePayloadChunk();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 954
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.isChunkingAllowed:()Z
            ifne 3
         1: .line 955
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.getContentLength:()J
            ldc -1
            lcmp
            ifne 3
         2: .line 954
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  private void blockAfterWriteIfNeeded();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 961
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.IS_BLOCKING:Z
            ifne 1
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.isNonBlockingWriteGuaranteed:Z
            ifne 1
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.isLastWriteNonBlocking:Z
            ifeq 2
         1: .line 962
      StackMap locals:
      StackMap stack:
            return
         2: .line 965
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
            invokevirtual org.glassfish.grizzly.http.HttpContext.getOutputSink:()Lorg/glassfish/grizzly/OutputSink;
            invokeinterface org.glassfish.grizzly.OutputSink.canWrite:()Z
            ifeq 4
         3: .line 966
            return
         4: .line 969
      StackMap locals:
      StackMap stack:
            invokestatic org.glassfish.grizzly.utils.Futures.createSafeFuture:()Lorg/glassfish/grizzly/impl/FutureImpl;
            astore 1 /* future */
        start local 1 // org.glassfish.grizzly.impl.FutureImpl future
         5: .line 971
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
            invokevirtual org.glassfish.grizzly.http.HttpContext.getOutputSink:()Lorg/glassfish/grizzly/OutputSink;
            new org.glassfish.grizzly.http.io.OutputBuffer$2
            dup
            aload 0 /* this */
            aload 1 /* future */
            invokespecial org.glassfish.grizzly.http.io.OutputBuffer$2.<init>:(Lorg/glassfish/grizzly/http/io/OutputBuffer;Lorg/glassfish/grizzly/impl/FutureImpl;)V
            invokeinterface org.glassfish.grizzly.OutputSink.notifyCanWrite:(Lorg/glassfish/grizzly/WriteHandler;)V
         6: .line 986
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.connection:Lorg/glassfish/grizzly/Connection;
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.glassfish.grizzly.Connection.getWriteTimeout:(Ljava/util/concurrent/TimeUnit;)J
         7: .line 985
            lstore 2 /* writeTimeout */
        start local 2 // long writeTimeout
         8: .line 987
            lload 2 /* writeTimeout */
            lconst_0
            lcmp
            iflt 11
         9: .line 988
            aload 1 /* future */
            lload 2 /* writeTimeout */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.glassfish.grizzly.impl.FutureImpl.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            pop
        10: .line 989
            goto 22
        11: .line 990
      StackMap locals: org.glassfish.grizzly.impl.FutureImpl long
      StackMap stack:
            aload 1 /* future */
            invokeinterface org.glassfish.grizzly.impl.FutureImpl.get:()Ljava/lang/Object;
            pop
        end local 2 // long writeTimeout
        12: .line 992
            goto 22
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer org.glassfish.grizzly.impl.FutureImpl
      StackMap stack: java.util.concurrent.ExecutionException
        13: astore 2 /* e */
        start local 2 // java.util.concurrent.ExecutionException e
        14: .line 994
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
            invokevirtual org.glassfish.grizzly.http.HttpContext.close:()V
        15: .line 995
            aload 2 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokestatic org.glassfish.grizzly.utils.Exceptions.makeIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 2 // java.util.concurrent.ExecutionException e
        16: .line 996
      StackMap locals:
      StackMap stack: java.util.concurrent.TimeoutException
            pop
        17: .line 998
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
            invokevirtual org.glassfish.grizzly.http.HttpContext.close:()V
        18: .line 999
            new java.io.IOException
            dup
            ldc "Write timeout exceeded when trying to flush the data"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 1000
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
        20: .line 1002
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.httpContext:Lorg/glassfish/grizzly/http/HttpContext;
            invokevirtual org.glassfish.grizzly.http.HttpContext.close:()V
        21: .line 1003
            aload 2 /* e */
            invokestatic org.glassfish.grizzly.utils.Exceptions.makeIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
            athrow
        end local 2 // java.lang.Exception e
        22: .line 1005
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.glassfish.grizzly.impl.FutureImpl future
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            5   23     1        future  Lorg/glassfish/grizzly/impl/FutureImpl<Ljava/lang/Boolean;>;
            8   12     2  writeTimeout  J
           14   16     2             e  Ljava/util/concurrent/ExecutionException;
           20   22     2             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6    12      13  Class java.util.concurrent.ExecutionException
           6    12      16  Class java.util.concurrent.TimeoutException
           6    12      19  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  private boolean flushAllBuffers(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // boolean isLast
         0: .line 1008
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            ifle 2
         1: .line 1009
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Z)V
         2: .line 1012
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* isLast */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBinaryBuffers:(Z)Z
            ireturn
        end local 1 // boolean isLast
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    3     1  isLast  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      isLast  final

  private boolean flushBinaryBuffers(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // boolean isLast
         0: .line 1017
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.isChunkingAllowed:()Z
            ifne 5
         1: .line 1018
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.getContentLength:()J
            ldc -1
            lcmp
            ifne 5
         2: .line 1019
            iload 1 /* isLast */
            ifne 4
         3: .line 1020
            iconst_0
            ireturn
         4: .line 1022
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.getBufferedDataSize:()I
            invokevirtual org.glassfish.grizzly.http.HttpHeader.setContentLength:(I)V
         5: .line 1026
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            ifnull 6
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.hasRemaining:()Z
            ifeq 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 3 /* isFlushComposite */
        start local 3 // boolean isFlushComposite
         8: .line 1028
            iload 3 /* isFlushComposite */
            ifeq 13
         9: .line 1029
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.finishCurrentBuffer:()V
        10: .line 1030
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            astore 2 /* bufferToFlush */
        start local 2 // org.glassfish.grizzly.Buffer bufferToFlush
        11: .line 1031
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
        12: .line 1032
            goto 19
        end local 2 // org.glassfish.grizzly.Buffer bufferToFlush
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer int top int
      StackMap stack:
        13: aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnull 18
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.position:()I
            ifle 18
        14: .line 1033
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.trim:()V
        15: .line 1034
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            astore 2 /* bufferToFlush */
        start local 2 // org.glassfish.grizzly.Buffer bufferToFlush
        16: .line 1035
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
        17: .line 1036
            goto 19
        end local 2 // org.glassfish.grizzly.Buffer bufferToFlush
        18: .line 1037
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* bufferToFlush */
        start local 2 // org.glassfish.grizzly.Buffer bufferToFlush
        19: .line 1040
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer int org.glassfish.grizzly.Buffer int
      StackMap stack:
            aload 2 /* bufferToFlush */
            ifnonnull 20
            iload 1 /* isLast */
            ifeq 23
        20: .line 1041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.doCommit:()Z
            pop
        21: .line 1042
            aload 0 /* this */
            aload 2 /* bufferToFlush */
            iload 1 /* isLast */
            aconst_null
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBuffer:(Lorg/glassfish/grizzly/Buffer;ZLorg/glassfish/grizzly/asyncqueue/MessageCloner;)V
        22: .line 1044
            iconst_1
            ireturn
        23: .line 1047
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean isFlushComposite
        end local 2 // org.glassfish.grizzly.Buffer bufferToFlush
        end local 1 // boolean isLast
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   24     0              this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   24     1            isLast  Z
           11   13     2     bufferToFlush  Lorg/glassfish/grizzly/Buffer;
           16   18     2     bufferToFlush  Lorg/glassfish/grizzly/Buffer;
           19   24     2     bufferToFlush  Lorg/glassfish/grizzly/Buffer;
            8   24     3  isFlushComposite  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      isLast  final

  private void flushBuffer(org.glassfish.grizzly.Buffer, boolean, org.glassfish.grizzly.asyncqueue.MessageCloner<org.glassfish.grizzly.Buffer>);
    descriptor: (Lorg/glassfish/grizzly/Buffer;ZLorg/glassfish/grizzly/asyncqueue/MessageCloner;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // org.glassfish.grizzly.Buffer bufferToFlush
        start local 2 // boolean isLast
        start local 3 // org.glassfish.grizzly.asyncqueue.MessageCloner messageCloner
         0: .line 1055
            iload 2 /* isLast */
            ifeq 11
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.trailersSupplier:Ljava/util/function/Supplier;
            ifnull 11
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.isChunked:()Z
            ifne 1
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.getProtocol:()Lorg/glassfish/grizzly/http/Protocol;
            getstatic org.glassfish.grizzly.http.Protocol.HTTP_2_0:Lorg/glassfish/grizzly/http/Protocol;
            invokevirtual org.glassfish.grizzly.http.Protocol.equals:(Ljava/lang/Object;)Z
            ifeq 11
         1: .line 1056
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.forceCommitHeaders:(Z)V
         2: .line 1057
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.httpTrailerBuilder:()Lorg/glassfish/grizzly/http/HttpTrailer$Builder;
            aload 1 /* bufferToFlush */
            invokevirtual org.glassfish.grizzly.http.HttpTrailer$Builder.content:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/http/HttpContent$Builder;
            checkcast org.glassfish.grizzly.http.HttpTrailer$Builder
            iconst_1
            invokevirtual org.glassfish.grizzly.http.HttpTrailer$Builder.last:(Z)Lorg/glassfish/grizzly/http/HttpContent$Builder;
            checkcast org.glassfish.grizzly.http.HttpTrailer$Builder
            astore 5 /* tBuilder */
        start local 5 // org.glassfish.grizzly.http.HttpTrailer$Builder tBuilder
         3: .line 1058
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.trailersSupplier:Ljava/util/function/Supplier;
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.util.Map
            astore 6 /* trailers */
        start local 6 // java.util.Map trailers
         4: .line 1059
            aload 6 /* trailers */
            ifnull 9
            aload 6 /* trailers */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 9
         5: .line 1060
            aload 6 /* trailers */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 8
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer org.glassfish.grizzly.Buffer int org.glassfish.grizzly.asyncqueue.MessageCloner top org.glassfish.grizzly.http.HttpTrailer$Builder java.util.Map top java.util.Iterator
      StackMap stack:
         6: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* entry */
        start local 7 // java.util.Map$Entry entry
         7: .line 1061
            aload 5 /* tBuilder */
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual org.glassfish.grizzly.http.HttpTrailer$Builder.header:(Ljava/lang/String;Ljava/lang/String;)Lorg/glassfish/grizzly/http/HttpTrailer$Builder;
            pop
        end local 7 // java.util.Map$Entry entry
         8: .line 1060
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 1064
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer org.glassfish.grizzly.Buffer int org.glassfish.grizzly.asyncqueue.MessageCloner top org.glassfish.grizzly.http.HttpTrailer$Builder java.util.Map
      StackMap stack:
            aload 5 /* tBuilder */
            invokevirtual org.glassfish.grizzly.http.HttpTrailer$Builder.build:()Lorg/glassfish/grizzly/http/HttpTrailer;
            astore 4 /* content */
        end local 6 // java.util.Map trailers
        end local 5 // org.glassfish.grizzly.http.HttpTrailer$Builder tBuilder
        start local 4 // org.glassfish.grizzly.http.HttpContent content
        10: .line 1065
            goto 12
        end local 4 // org.glassfish.grizzly.http.HttpContent content
        11: .line 1066
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer org.glassfish.grizzly.Buffer int org.glassfish.grizzly.asyncqueue.MessageCloner
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.builder:Lorg/glassfish/grizzly/http/HttpContent$Builder;
            aload 1 /* bufferToFlush */
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.content:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/http/HttpContent$Builder;
            iload 2 /* isLast */
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.last:(Z)Lorg/glassfish/grizzly/http/HttpContent$Builder;
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.build:()Lorg/glassfish/grizzly/http/HttpContent;
            astore 4 /* content */
        start local 4 // org.glassfish.grizzly.http.HttpContent content
        12: .line 1068
      StackMap locals: org.glassfish.grizzly.http.HttpContent
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            aconst_null
        13: .line 1069
            aload 4 /* content */
        14: .line 1070
            aconst_null
        15: .line 1071
            aload 3 /* messageCloner */
        16: .line 1072
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.IS_BLOCKING:Z
        17: .line 1068
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;Ljava/lang/Object;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
        18: .line 1073
            return
        end local 4 // org.glassfish.grizzly.http.HttpContent content
        end local 3 // org.glassfish.grizzly.asyncqueue.MessageCloner messageCloner
        end local 2 // boolean isLast
        end local 1 // org.glassfish.grizzly.Buffer bufferToFlush
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   19     1  bufferToFlush  Lorg/glassfish/grizzly/Buffer;
            0   19     2         isLast  Z
            0   19     3  messageCloner  Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;
           10   11     4        content  Lorg/glassfish/grizzly/http/HttpContent;
           12   19     4        content  Lorg/glassfish/grizzly/http/HttpContent;
            3   10     5       tBuilder  Lorg/glassfish/grizzly/http/HttpTrailer$Builder;
            4   10     6       trailers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            7    8     7          entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Lorg/glassfish/grizzly/Buffer;ZLorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;)V
    MethodParameters:
               Name  Flags
      bufferToFlush  final
      isLast         final
      messageCloner  final

  private void checkCharBuffer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1076
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            ifnonnull 3
         1: .line 1077
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.bufferSize:I
            newarray 5
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
         2: .line 1078
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            invokestatic java.nio.CharBuffer.wrap:([C)Ljava/nio/CharBuffer;
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsBuffer:Ljava/nio/CharBuffer;
         3: .line 1080
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  private boolean writingChars();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1083
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArray:[C
            ifnull 1
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  private boolean writingBytes();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1087
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnull 1
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.position:()I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  private void checkCurrentBuffer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1091
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnonnull 3
         1: .line 1092
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.bufferSize:I
            invokeinterface org.glassfish.grizzly.memory.MemoryManager.allocate:(I)Lorg/glassfish/grizzly/Buffer;
            putfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
         2: .line 1093
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            iconst_1
            invokeinterface org.glassfish.grizzly.Buffer.allowBufferDispose:(Z)V
         3: .line 1095
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  private void finishCurrentBuffer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1098
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            ifnull 5
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.position:()I
            ifle 5
         1: .line 1099
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.trim:()V
         2: .line 1100
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCompositeBuffer:()V
         3: .line 1101
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.append:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/memory/CompositeBuffer;
            pop
         4: .line 1102
            aload 0 /* this */
            aconst_null
            putfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
         5: .line 1104
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;

  private java.nio.charset.CharsetEncoder getEncoder();
    descriptor: ()Ljava/nio/charset/CharsetEncoder;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1108
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
            ifnonnull 13
         1: .line 1109
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.getCharacterEncoding:()Ljava/lang/String;
            astore 1 /* encoding */
        start local 1 // java.lang.String encoding
         2: .line 1110
            aload 1 /* encoding */
            ifnonnull 4
         3: .line 1111
            getstatic org.glassfish.grizzly.http.util.Constants.DEFAULT_HTTP_CHARACTER_ENCODING:Ljava/lang/String;
            astore 1 /* encoding */
         4: .line 1114
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoders:Ljava/util/Map;
            aload 1 /* encoding */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.charset.CharsetEncoder
            putfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
         5: .line 1115
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
            ifnonnull 12
         6: .line 1116
            aload 1 /* encoding */
            invokestatic org.glassfish.grizzly.utils.Charsets.lookupCharset:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 2 /* cs */
        start local 2 // java.nio.charset.Charset cs
         7: .line 1117
            aload 0 /* this */
            aload 2 /* cs */
            invokevirtual java.nio.charset.Charset.newEncoder:()Ljava/nio/charset/CharsetEncoder;
            putfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
         8: .line 1118
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetEncoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;
            pop
         9: .line 1119
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetEncoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;
            pop
        10: .line 1121
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoders:Ljava/util/Map;
            aload 1 /* encoding */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.nio.charset.Charset cs
        11: .line 1122
            goto 13
        12: .line 1123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
            invokevirtual java.nio.charset.CharsetEncoder.reset:()Ljava/nio/charset/CharsetEncoder;
            pop
        end local 1 // java.lang.String encoding
        13: .line 1127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.encoder:Ljava/nio/charset/CharsetEncoder;
            areturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            2   13     1  encoding  Ljava/lang/String;
            7   11     2        cs  Ljava/nio/charset/Charset;

  private boolean doCommit();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1134
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.committed:Z
            ifne 5
         1: .line 1135
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.notifyCommit:()V
         2: .line 1136
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.grizzly.http.io.OutputBuffer.committed:Z
         3: .line 1137
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            invokevirtual org.glassfish.grizzly.http.HttpHeader.getHeaders:()Lorg/glassfish/grizzly/http/util/MimeHeaders;
            invokevirtual org.glassfish.grizzly.http.util.MimeHeaders.mark:()V
         4: .line 1138
            iconst_1
            ireturn
         5: .line 1141
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
    Exceptions:
      throws java.io.IOException

  private void forceCommitHeaders(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // boolean isLast
         0: .line 1145
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.headersWritten:Z
            ifne 7
         1: .line 1146
            iload 1 /* isLast */
            ifeq 6
         2: .line 1147
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            ifnull 7
         3: .line 1148
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.builder:Lorg/glassfish/grizzly/http/HttpContent$Builder;
            iconst_1
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.last:(Z)Lorg/glassfish/grizzly/http/HttpContent$Builder;
            aconst_null
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.content:(Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/http/HttpContent$Builder;
            pop
         4: .line 1149
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.builder:Lorg/glassfish/grizzly/http/HttpContent$Builder;
            invokevirtual org.glassfish.grizzly.http.HttpContent$Builder.build:()Lorg/glassfish/grizzly/http/HttpContent;
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.IS_BLOCKING:Z
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;Z)V
         5: .line 1151
            goto 7
         6: .line 1152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.ctx:Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.outputHeader:Lorg/glassfish/grizzly/http/HttpHeader;
            getstatic org.glassfish.grizzly.http.io.OutputBuffer.IS_BLOCKING:Z
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;Z)V
         7: .line 1155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.grizzly.http.io.OutputBuffer.headersWritten:Z
         8: .line 1156
            return
        end local 1 // boolean isLast
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0    9     1  isLast  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      isLast  final

  private void checkCompositeBuffer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1159
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            ifnonnull 6
         1: .line 1161
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
         2: .line 1160
            invokestatic org.glassfish.grizzly.memory.CompositeBuffer.newBuffer:(Lorg/glassfish/grizzly/memory/MemoryManager;)Lorg/glassfish/grizzly/memory/CompositeBuffer;
            astore 1 /* buffer */
        start local 1 // org.glassfish.grizzly.memory.CompositeBuffer buffer
         3: .line 1162
            aload 1 /* buffer */
            iconst_1
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.allowBufferDispose:(Z)V
         4: .line 1163
            aload 1 /* buffer */
            iconst_1
            invokevirtual org.glassfish.grizzly.memory.CompositeBuffer.allowInternalBuffersDispose:(Z)V
         5: .line 1164
            aload 0 /* this */
            aload 1 /* buffer */
            putfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
        end local 1 // org.glassfish.grizzly.memory.CompositeBuffer buffer
         6: .line 1166
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            3    6     1  buffer  Lorg/glassfish/grizzly/memory/CompositeBuffer;

  private void flushCharsToBuf(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // boolean canFlushToNet
         0: .line 1169
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsBuffer:Ljava/nio/CharBuffer;
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
            invokevirtual java.nio.CharBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         1: .line 1171
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsBuffer:Ljava/nio/CharBuffer;
            iload 1 /* canFlushToNet */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushCharsToBuf:(Ljava/nio/CharBuffer;Z)V
         2: .line 1172
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1173
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
         5: .line 1174
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsBuffer:Ljava/nio/CharBuffer;
            invokevirtual java.nio.CharBuffer.clear:()Ljava/nio/Buffer;
            pop
         6: .line 1175
            aload 2
            athrow
         7: .line 1173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.charsArrayLength:I
         8: .line 1174
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.charsBuffer:Ljava/nio/CharBuffer;
            invokevirtual java.nio.CharBuffer.clear:()Ljava/nio/Buffer;
            pop
         9: .line 1176
            return
        end local 1 // boolean canFlushToNet
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   10     1  canFlushToNet  Z
      Exception table:
        from    to  target  type
           1     3       3  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      canFlushToNet  final

  private void flushCharsToBuf(java.nio.CharBuffer, boolean);
    descriptor: (Ljava/nio/CharBuffer;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
        start local 1 // java.nio.CharBuffer charBuf
        start local 2 // boolean canFlushToNet
         0: .line 1180
            aload 1 /* charBuf */
            invokevirtual java.nio.CharBuffer.hasRemaining:()Z
            ifne 1
            return
         1: .line 1183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.getEncoder:()Ljava/nio/charset/CharsetEncoder;
            astore 3 /* enc */
        start local 3 // java.nio.charset.CharsetEncoder enc
         2: .line 1185
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCurrentBuffer:()V
         3: .line 1187
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 6
         4: .line 1188
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.finishCurrentBuffer:()V
         5: .line 1189
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCurrentBuffer:()V
         6: .line 1192
      StackMap locals: java.nio.charset.CharsetEncoder
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.toByteBuffer:()Ljava/nio/ByteBuffer;
            astore 4 /* currentByteBuffer */
        start local 4 // java.nio.ByteBuffer currentByteBuffer
         7: .line 1193
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.position:()I
            istore 5 /* bufferPos */
        start local 5 // int bufferPos
         8: .line 1194
            aload 4 /* currentByteBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 6 /* byteBufferPos */
        start local 6 // int byteBufferPos
         9: .line 1196
            aload 3 /* enc */
            aload 1 /* charBuf */
        10: .line 1197
            aload 4 /* currentByteBuffer */
        11: .line 1198
            iconst_1
        12: .line 1196
            invokevirtual java.nio.charset.CharsetEncoder.encode:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
            astore 7 /* res */
        start local 7 // java.nio.charset.CoderResult res
        13: .line 1200
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            iload 5 /* bufferPos */
            aload 4 /* currentByteBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 6 /* byteBufferPos */
            isub
            iadd
            invokeinterface org.glassfish.grizzly.Buffer.position:(I)Lorg/glassfish/grizzly/Buffer;
            pop
        14: .line 1202
            goto 23
        15: .line 1203
      StackMap locals: org.glassfish.grizzly.http.io.OutputBuffer java.nio.CharBuffer int java.nio.charset.CharsetEncoder java.nio.ByteBuffer int int java.nio.charset.CoderResult
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.checkCurrentBuffer:()V
        16: .line 1204
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.toByteBuffer:()Ljava/nio/ByteBuffer;
            astore 4 /* currentByteBuffer */
        17: .line 1205
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            invokeinterface org.glassfish.grizzly.Buffer.position:()I
            istore 5 /* bufferPos */
        18: .line 1206
            aload 4 /* currentByteBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 6 /* byteBufferPos */
        19: .line 1208
            aload 3 /* enc */
            aload 1 /* charBuf */
            aload 4 /* currentByteBuffer */
            iconst_1
            invokevirtual java.nio.charset.CharsetEncoder.encode:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
            astore 7 /* res */
        20: .line 1210
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.currentBuffer:Lorg/glassfish/grizzly/Buffer;
            iload 5 /* bufferPos */
            aload 4 /* currentByteBuffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 6 /* byteBufferPos */
            isub
            iadd
            invokeinterface org.glassfish.grizzly.Buffer.position:(I)Lorg/glassfish/grizzly/Buffer;
            pop
        21: .line 1212
            aload 7 /* res */
            getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
            if_acmpne 23
        22: .line 1213
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.finishCurrentBuffer:()V
        23: .line 1202
      StackMap locals:
      StackMap stack:
            aload 7 /* res */
            getstatic java.nio.charset.CoderResult.OVERFLOW:Ljava/nio/charset/CoderResult;
            if_acmpeq 15
        24: .line 1217
            aload 7 /* res */
            getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
            if_acmpeq 26
        25: .line 1218
            new java.io.IOException
            dup
            ldc "Encoding error"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 1221
      StackMap locals:
      StackMap stack:
            iload 2 /* canFlushToNet */
            ifeq 28
        27: .line 1222
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBinaryBuffersIfNeeded:()V
        28: .line 1224
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.nio.charset.CoderResult res
        end local 6 // int byteBufferPos
        end local 5 // int bufferPos
        end local 4 // java.nio.ByteBuffer currentByteBuffer
        end local 3 // java.nio.charset.CharsetEncoder enc
        end local 2 // boolean canFlushToNet
        end local 1 // java.nio.CharBuffer charBuf
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   29     0               this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            0   29     1            charBuf  Ljava/nio/CharBuffer;
            0   29     2      canFlushToNet  Z
            2   29     3                enc  Ljava/nio/charset/CharsetEncoder;
            7   29     4  currentByteBuffer  Ljava/nio/ByteBuffer;
            8   29     5          bufferPos  I
            9   29     6      byteBufferPos  I
           13   29     7                res  Ljava/nio/charset/CoderResult;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      charBuf        final
      canFlushToNet  final

  private void flushBinaryBuffersIfNeeded();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1227
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.compositeBuffer:Lorg/glassfish/grizzly/memory/CompositeBuffer;
            ifnull 3
         1: .line 1228
            aload 0 /* this */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.flushBinaryBuffers:(Z)Z
            pop
         2: .line 1230
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.http.io.OutputBuffer.blockAfterWriteIfNeeded:()V
         3: .line 1232
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
    Exceptions:
      throws java.io.IOException

  private void notifyCommit();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1235
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.lifeCycleListeners:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 2 /* len */
        start local 2 // int len
         2: goto 5
         3: .line 1236
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.lifeCycleListeners:Ljava/util/List;
            iload 1 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener
            invokeinterface org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener.onCommit:()V
         4: .line 1235
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            iload 2 /* len */
            if_icmplt 3
        end local 2 // int len
        end local 1 // int i
         6: .line 1238
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
            1    6     1     i  I
            2    6     2   len  I
    Exceptions:
      throws java.io.IOException

  private void updateNonBlockingStatus();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
         0: .line 1241
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http.io.OutputBuffer.isNonBlockingWriteGuaranteed:Z
            putfield org.glassfish.grizzly.http.io.OutputBuffer.isLastWriteNonBlocking:Z
         1: .line 1242
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http.io.OutputBuffer.isNonBlockingWriteGuaranteed:Z
         2: .line 1243
            return
        end local 0 // org.glassfish.grizzly.http.io.OutputBuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/glassfish/grizzly/http/io/OutputBuffer;
}
SourceFile: "OutputBuffer.java"
NestMembers:
  org.glassfish.grizzly.http.io.OutputBuffer$1  org.glassfish.grizzly.http.io.OutputBuffer$2  org.glassfish.grizzly.http.io.OutputBuffer$ByteArrayCloner  org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler  org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler$1  org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler$2  org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final Reentrant = org.glassfish.grizzly.Writer$Reentrant of org.glassfish.grizzly.Writer
  public Builder = org.glassfish.grizzly.http.HttpContent$Builder of org.glassfish.grizzly.http.HttpContent
  public final Builder = org.glassfish.grizzly.http.HttpTrailer$Builder of org.glassfish.grizzly.http.HttpTrailer
  org.glassfish.grizzly.http.io.OutputBuffer$1
  org.glassfish.grizzly.http.io.OutputBuffer$2
  final ByteArrayCloner = org.glassfish.grizzly.http.io.OutputBuffer$ByteArrayCloner of org.glassfish.grizzly.http.io.OutputBuffer
  private InternalWriteHandler = org.glassfish.grizzly.http.io.OutputBuffer$InternalWriteHandler of org.glassfish.grizzly.http.io.OutputBuffer
  public abstract LifeCycleListener = org.glassfish.grizzly.http.io.OutputBuffer$LifeCycleListener of org.glassfish.grizzly.http.io.OutputBuffer