public class io.undertow.io.BlockingReceiverImpl implements io.undertow.io.Receiver
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.undertow.io.BlockingReceiverImpl
  super_class: java.lang.Object
{
  private static final io.undertow.io.Receiver$ErrorCallback END_EXCHANGE;
    descriptor: Lio/undertow/io/Receiver$ErrorCallback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final byte[] EMPTY_BYTE_ARRAY;
    descriptor: [B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final io.undertow.server.HttpServerExchange exchange;
    descriptor: Lio/undertow/server/HttpServerExchange;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 40
            new io.undertow.io.BlockingReceiverImpl$1
            dup
            invokespecial io.undertow.io.BlockingReceiverImpl$1.<init>:()V
            putstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
         1: .line 51
            iconst_0
            newarray 8
            putstatic io.undertow.io.BlockingReceiverImpl.EMPTY_BYTE_ARRAY:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.undertow.server.HttpServerExchange, java.io.InputStream);
    descriptor: (Lio/undertow/server/HttpServerExchange;Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.server.HttpServerExchange exchange
        start local 2 // java.io.InputStream inputStream
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
            iconst_m1
            putfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
         2: .line 57
            aload 0 /* this */
            iconst_0
            putfield io.undertow.io.BlockingReceiverImpl.done:Z
         3: .line 60
            aload 0 /* this */
            aload 1 /* exchange */
            putfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
         4: .line 61
            aload 0 /* this */
            aload 2 /* inputStream */
            putfield io.undertow.io.BlockingReceiverImpl.inputStream:Ljava/io/InputStream;
         5: .line 62
            return
        end local 2 // java.io.InputStream inputStream
        end local 1 // io.undertow.server.HttpServerExchange exchange
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lio/undertow/io/BlockingReceiverImpl;
            0    6     1     exchange  Lio/undertow/server/HttpServerExchange;
            0    6     2  inputStream  Ljava/io/InputStream;
    MethodParameters:
             Name  Flags
      exchange     
      inputStream  

  public void setMaxBufferSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // int maxBufferSize
         0: .line 66
            aload 0 /* this */
            iload 1 /* maxBufferSize */
            putfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
         1: .line 67
            return
        end local 1 // int maxBufferSize
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1  maxBufferSize  I
    MethodParameters:
               Name  Flags
      maxBufferSize  

  public void receiveFullString(io.undertow.io.Receiver$FullStringCallback, io.undertow.io.Receiver$ErrorCallback);
    descriptor: (Lio/undertow/io/Receiver$FullStringCallback;Lio/undertow/io/Receiver$ErrorCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$FullStringCallback callback
        start local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
         0: .line 71
            aload 0 /* this */
            aload 1 /* callback */
            aload 2 /* errorCallback */
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokevirtual io.undertow.io.BlockingReceiverImpl.receiveFullString:(Lio/undertow/io/Receiver$FullStringCallback;Lio/undertow/io/Receiver$ErrorCallback;Ljava/nio/charset/Charset;)V
         1: .line 72
            return
        end local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
        end local 1 // io.undertow.io.Receiver$FullStringCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1       callback  Lio/undertow/io/Receiver$FullStringCallback;
            0    2     2  errorCallback  Lio/undertow/io/Receiver$ErrorCallback;
    MethodParameters:
               Name  Flags
      callback       final
      errorCallback  

  public void receiveFullString(io.undertow.io.Receiver$FullStringCallback);
    descriptor: (Lio/undertow/io/Receiver$FullStringCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$FullStringCallback callback
         0: .line 76
            aload 0 /* this */
            aload 1 /* callback */
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokevirtual io.undertow.io.BlockingReceiverImpl.receiveFullString:(Lio/undertow/io/Receiver$FullStringCallback;Lio/undertow/io/Receiver$ErrorCallback;Ljava/nio/charset/Charset;)V
         1: .line 77
            return
        end local 1 // io.undertow.io.Receiver$FullStringCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1  callback  Lio/undertow/io/Receiver$FullStringCallback;
    MethodParameters:
          Name  Flags
      callback  

  public void receivePartialString(io.undertow.io.Receiver$PartialStringCallback, io.undertow.io.Receiver$ErrorCallback);
    descriptor: (Lio/undertow/io/Receiver$PartialStringCallback;Lio/undertow/io/Receiver$ErrorCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$PartialStringCallback callback
        start local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
         0: .line 81
            aload 0 /* this */
            aload 1 /* callback */
            aload 2 /* errorCallback */
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokevirtual io.undertow.io.BlockingReceiverImpl.receivePartialString:(Lio/undertow/io/Receiver$PartialStringCallback;Lio/undertow/io/Receiver$ErrorCallback;Ljava/nio/charset/Charset;)V
         1: .line 82
            return
        end local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
        end local 1 // io.undertow.io.Receiver$PartialStringCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1       callback  Lio/undertow/io/Receiver$PartialStringCallback;
            0    2     2  errorCallback  Lio/undertow/io/Receiver$ErrorCallback;
    MethodParameters:
               Name  Flags
      callback       
      errorCallback  

  public void receivePartialString(io.undertow.io.Receiver$PartialStringCallback);
    descriptor: (Lio/undertow/io/Receiver$PartialStringCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$PartialStringCallback callback
         0: .line 86
            aload 0 /* this */
            aload 1 /* callback */
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            invokevirtual io.undertow.io.BlockingReceiverImpl.receivePartialString:(Lio/undertow/io/Receiver$PartialStringCallback;Lio/undertow/io/Receiver$ErrorCallback;Ljava/nio/charset/Charset;)V
         1: .line 87
            return
        end local 1 // io.undertow.io.Receiver$PartialStringCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1  callback  Lio/undertow/io/Receiver$PartialStringCallback;
    MethodParameters:
          Name  Flags
      callback  

  public void receiveFullString(io.undertow.io.Receiver$FullStringCallback, io.undertow.io.Receiver$ErrorCallback, java.nio.charset.Charset);
    descriptor: (Lio/undertow/io/Receiver$FullStringCallback;Lio/undertow/io/Receiver$ErrorCallback;Ljava/nio/charset/Charset;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=4
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$FullStringCallback callback
        start local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
        start local 3 // java.nio.charset.Charset charset
         0: .line 91
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.done:Z
            ifeq 2
         1: .line 92
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.requestBodyAlreadyRead:()Ljava/lang/IllegalStateException;
            athrow
         2: .line 94
      StackMap locals:
      StackMap stack:
            aload 2 /* errorCallback */
            ifnonnull 3
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 2 /* errorCallback */
      StackMap locals:
      StackMap stack: io.undertow.io.Receiver$ErrorCallback
         4: astore 4 /* error */
        start local 4 // io.undertow.io.Receiver$ErrorCallback error
         5: .line 95
            aload 1 /* callback */
            ifnonnull 7
         6: .line 96
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            ldc "callback"
            invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         7: .line 98
      StackMap locals: io.undertow.io.Receiver$ErrorCallback
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.isRequestComplete:()Z
            ifeq 10
         8: .line 99
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            ldc ""
            invokeinterface io.undertow.io.Receiver$FullStringCallback.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;)V
         9: .line 100
            return
        10: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
            getstatic io.undertow.util.Headers.CONTENT_LENGTH:Lio/undertow/util/HttpString;
            invokevirtual io.undertow.util.HeaderMap.getFirst:(Lio/undertow/util/HttpString;)Ljava/lang/String;
            astore 5 /* contentLengthString */
        start local 5 // java.lang.String contentLengthString
        11: .line 105
            aload 5 /* contentLengthString */
            ifnull 18
        12: .line 106
            aload 5 /* contentLengthString */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 6 /* contentLength */
        start local 6 // long contentLength
        13: .line 107
            lload 6 /* contentLength */
            ldc 2147483647
            lcmp
            ifle 16
        14: .line 108
            aload 4 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            new io.undertow.io.Receiver$RequestToLargeException
            dup
            invokespecial io.undertow.io.Receiver$RequestToLargeException.<init>:()V
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        15: .line 109
            return
        16: .line 111
      StackMap locals: java.lang.String long
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            lload 6 /* contentLength */
            l2i
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 8 /* sb */
        start local 8 // java.io.ByteArrayOutputStream sb
        17: .line 112
            goto 20
        end local 8 // java.io.ByteArrayOutputStream sb
        end local 6 // long contentLength
        18: .line 113
      StackMap locals:
      StackMap stack:
            ldc -1
            lstore 6 /* contentLength */
        start local 6 // long contentLength
        19: .line 114
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 8 /* sb */
        start local 8 // java.io.ByteArrayOutputStream sb
        20: .line 116
      StackMap locals: long java.io.ByteArrayOutputStream
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
            ifle 24
        21: .line 117
            lload 6 /* contentLength */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
            i2l
            lcmp
            ifle 24
        22: .line 118
            aload 4 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            new io.undertow.io.Receiver$RequestToLargeException
            dup
            invokespecial io.undertow.io.Receiver$RequestToLargeException.<init>:()V
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        23: .line 119
            return
        24: .line 123
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 10
            aconst_null
            astore 11
        25: aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokevirtual io.undertow.server.ServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.getArrayBackedPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            astore 12 /* pooled */
        start local 12 // io.undertow.connector.PooledByteBuffer pooled
        26: .line 124
            goto 28
        start local 9 // int s
        27: .line 125
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$FullStringCallback io.undertow.io.Receiver$ErrorCallback java.nio.charset.Charset io.undertow.io.Receiver$ErrorCallback java.lang.String long java.io.ByteArrayOutputStream int java.lang.Throwable java.lang.Throwable io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 8 /* sb */
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iload 9 /* s */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 9 // int s
        28: .line 124
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$FullStringCallback io.undertow.io.Receiver$ErrorCallback java.nio.charset.Charset io.undertow.io.Receiver$ErrorCallback java.lang.String long java.io.ByteArrayOutputStream top java.lang.Throwable java.lang.Throwable io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.inputStream:Ljava/io/InputStream;
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual java.io.InputStream.read:([BII)I
            dup
            istore 9 /* s */
        start local 9 // int s
        29: ifgt 27
        30: .line 127
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            aload 8 /* sb */
            aload 3 /* charset */
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokevirtual java.io.ByteArrayOutputStream.toString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface io.undertow.io.Receiver$FullStringCallback.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;)V
        31: .line 128
            aload 12 /* pooled */
            ifnull 39
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
            goto 39
        end local 9 // int s
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 10
            aload 12 /* pooled */
            ifnull 33
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        end local 12 // io.undertow.connector.PooledByteBuffer pooled
      StackMap locals:
      StackMap stack:
        33: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 11
            aload 10
            ifnonnull 35
            aload 11
            astore 10
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 10
            aload 11
            if_acmpeq 36
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        36: aload 10
            athrow
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$FullStringCallback io.undertow.io.Receiver$ErrorCallback java.nio.charset.Charset io.undertow.io.Receiver$ErrorCallback java.lang.String long java.io.ByteArrayOutputStream
      StackMap stack: java.io.IOException
        37: astore 10 /* e */
        start local 10 // java.io.IOException e
        38: .line 129
            aload 4 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            aload 10 /* e */
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        end local 10 // java.io.IOException e
        39: .line 132
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.io.ByteArrayOutputStream sb
        end local 6 // long contentLength
        end local 5 // java.lang.String contentLengthString
        end local 4 // io.undertow.io.Receiver$ErrorCallback error
        end local 3 // java.nio.charset.Charset charset
        end local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
        end local 1 // io.undertow.io.Receiver$FullStringCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   40     0                 this  Lio/undertow/io/BlockingReceiverImpl;
            0   40     1             callback  Lio/undertow/io/Receiver$FullStringCallback;
            0   40     2        errorCallback  Lio/undertow/io/Receiver$ErrorCallback;
            0   40     3              charset  Ljava/nio/charset/Charset;
            5   40     4                error  Lio/undertow/io/Receiver$ErrorCallback;
           11   40     5  contentLengthString  Ljava/lang/String;
           13   18     6        contentLength  J
           19   40     6        contentLength  J
           17   18     8                   sb  Ljava/io/ByteArrayOutputStream;
           20   40     8                   sb  Ljava/io/ByteArrayOutputStream;
           27   28     9                    s  I
           29   32     9                    s  I
           26   33    12               pooled  Lio/undertow/connector/PooledByteBuffer;
           38   39    10                    e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          26    31      32  any
          25    34      34  any
          24    37      37  Class java.io.IOException
    MethodParameters:
               Name  Flags
      callback       final
      errorCallback  final
      charset        final

  public void receiveFullString(io.undertow.io.Receiver$FullStringCallback, java.nio.charset.Charset);
    descriptor: (Lio/undertow/io/Receiver$FullStringCallback;Ljava/nio/charset/Charset;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$FullStringCallback callback
        start local 2 // java.nio.charset.Charset charset
         0: .line 136
            aload 0 /* this */
            aload 1 /* callback */
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            aload 2 /* charset */
            invokevirtual io.undertow.io.BlockingReceiverImpl.receiveFullString:(Lio/undertow/io/Receiver$FullStringCallback;Lio/undertow/io/Receiver$ErrorCallback;Ljava/nio/charset/Charset;)V
         1: .line 137
            return
        end local 2 // java.nio.charset.Charset charset
        end local 1 // io.undertow.io.Receiver$FullStringCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1  callback  Lio/undertow/io/Receiver$FullStringCallback;
            0    2     2   charset  Ljava/nio/charset/Charset;
    MethodParameters:
          Name  Flags
      callback  
      charset   

  public void receivePartialString(io.undertow.io.Receiver$PartialStringCallback, io.undertow.io.Receiver$ErrorCallback, java.nio.charset.Charset);
    descriptor: (Lio/undertow/io/Receiver$PartialStringCallback;Lio/undertow/io/Receiver$ErrorCallback;Ljava/nio/charset/Charset;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=14, args_size=4
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$PartialStringCallback callback
        start local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
        start local 3 // java.nio.charset.Charset charset
         0: .line 141
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.done:Z
            ifeq 2
         1: .line 142
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.requestBodyAlreadyRead:()Ljava/lang/IllegalStateException;
            athrow
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 2 /* errorCallback */
            ifnonnull 3
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 2 /* errorCallback */
      StackMap locals:
      StackMap stack: io.undertow.io.Receiver$ErrorCallback
         4: astore 4 /* error */
        start local 4 // io.undertow.io.Receiver$ErrorCallback error
         5: .line 145
            aload 1 /* callback */
            ifnonnull 7
         6: .line 146
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            ldc "callback"
            invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         7: .line 148
      StackMap locals: io.undertow.io.Receiver$ErrorCallback
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.isRequestComplete:()Z
            ifeq 10
         8: .line 149
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            ldc ""
            iconst_1
            invokeinterface io.undertow.io.Receiver$PartialStringCallback.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Z)V
         9: .line 150
            return
        10: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
            getstatic io.undertow.util.Headers.CONTENT_LENGTH:Lio/undertow/util/HttpString;
            invokevirtual io.undertow.util.HeaderMap.getFirst:(Lio/undertow/util/HttpString;)Ljava/lang/String;
            astore 5 /* contentLengthString */
        start local 5 // java.lang.String contentLengthString
        11: .line 154
            aload 5 /* contentLengthString */
            ifnull 16
        12: .line 155
            aload 5 /* contentLengthString */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 6 /* contentLength */
        start local 6 // long contentLength
        13: .line 156
            lload 6 /* contentLength */
            ldc 2147483647
            lcmp
            ifle 17
        14: .line 157
            aload 4 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            new io.undertow.io.Receiver$RequestToLargeException
            dup
            invokespecial io.undertow.io.Receiver$RequestToLargeException.<init>:()V
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        15: .line 158
            return
        end local 6 // long contentLength
        16: .line 161
      StackMap locals: java.lang.String
      StackMap stack:
            ldc -1
            lstore 6 /* contentLength */
        start local 6 // long contentLength
        17: .line 163
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
            ifle 21
        18: .line 164
            lload 6 /* contentLength */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
            i2l
            lcmp
            ifle 21
        19: .line 165
            aload 4 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            new io.undertow.io.Receiver$RequestToLargeException
            dup
            invokespecial io.undertow.io.Receiver$RequestToLargeException.<init>:()V
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        20: .line 166
            return
        21: .line 169
      StackMap locals:
      StackMap stack:
            aload 3 /* charset */
            invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
            astore 8 /* decoder */
        start local 8 // java.nio.charset.CharsetDecoder decoder
        22: .line 171
            aconst_null
            astore 10
            aconst_null
            astore 11
        23: aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokevirtual io.undertow.server.ServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.getArrayBackedPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            astore 12 /* pooled */
        start local 12 // io.undertow.connector.PooledByteBuffer pooled
        24: .line 172
            goto 29
        start local 9 // int s
        25: .line 173
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$PartialStringCallback io.undertow.io.Receiver$ErrorCallback java.nio.charset.Charset io.undertow.io.Receiver$ErrorCallback java.lang.String long java.nio.charset.CharsetDecoder int java.lang.Throwable java.lang.Throwable io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            iload 9 /* s */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        26: .line 174
            aload 8 /* decoder */
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;
            astore 13 /* res */
        start local 13 // java.nio.CharBuffer res
        27: .line 175
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            aload 13 /* res */
            invokevirtual java.nio.CharBuffer.toString:()Ljava/lang/String;
            iconst_0
            invokeinterface io.undertow.io.Receiver$PartialStringCallback.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Z)V
        28: .line 176
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        end local 13 // java.nio.CharBuffer res
        end local 9 // int s
        29: .line 172
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$PartialStringCallback io.undertow.io.Receiver$ErrorCallback java.nio.charset.Charset io.undertow.io.Receiver$ErrorCallback java.lang.String long java.nio.charset.CharsetDecoder top java.lang.Throwable java.lang.Throwable io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.inputStream:Ljava/io/InputStream;
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual java.io.InputStream.read:([BII)I
            dup
            istore 9 /* s */
        start local 9 // int s
        30: ifgt 25
        31: .line 178
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            ldc ""
            iconst_1
            invokeinterface io.undertow.io.Receiver$PartialStringCallback.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Z)V
        32: .line 179
            aload 12 /* pooled */
            ifnull 40
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
            goto 40
        end local 9 // int s
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 10
            aload 12 /* pooled */
            ifnull 34
            aload 12 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        end local 12 // io.undertow.connector.PooledByteBuffer pooled
      StackMap locals:
      StackMap stack:
        34: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 11
            aload 10
            ifnonnull 36
            aload 11
            astore 10
            goto 37
      StackMap locals:
      StackMap stack:
        36: aload 10
            aload 11
            if_acmpeq 37
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        37: aload 10
            athrow
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$PartialStringCallback io.undertow.io.Receiver$ErrorCallback java.nio.charset.Charset io.undertow.io.Receiver$ErrorCallback java.lang.String long java.nio.charset.CharsetDecoder
      StackMap stack: java.io.IOException
        38: astore 10 /* e */
        start local 10 // java.io.IOException e
        39: .line 180
            aload 4 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            aload 10 /* e */
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        end local 10 // java.io.IOException e
        40: .line 183
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.nio.charset.CharsetDecoder decoder
        end local 6 // long contentLength
        end local 5 // java.lang.String contentLengthString
        end local 4 // io.undertow.io.Receiver$ErrorCallback error
        end local 3 // java.nio.charset.Charset charset
        end local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
        end local 1 // io.undertow.io.Receiver$PartialStringCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   41     0                 this  Lio/undertow/io/BlockingReceiverImpl;
            0   41     1             callback  Lio/undertow/io/Receiver$PartialStringCallback;
            0   41     2        errorCallback  Lio/undertow/io/Receiver$ErrorCallback;
            0   41     3              charset  Ljava/nio/charset/Charset;
            5   41     4                error  Lio/undertow/io/Receiver$ErrorCallback;
           11   41     5  contentLengthString  Ljava/lang/String;
           13   16     6        contentLength  J
           17   41     6        contentLength  J
           22   41     8              decoder  Ljava/nio/charset/CharsetDecoder;
           25   29     9                    s  I
           30   33     9                    s  I
           24   34    12               pooled  Lio/undertow/connector/PooledByteBuffer;
           27   29    13                  res  Ljava/nio/CharBuffer;
           39   40    10                    e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          24    32      33  any
          23    35      35  any
          22    38      38  Class java.io.IOException
    MethodParameters:
               Name  Flags
      callback       final
      errorCallback  final
      charset        

  public void receivePartialString(io.undertow.io.Receiver$PartialStringCallback, java.nio.charset.Charset);
    descriptor: (Lio/undertow/io/Receiver$PartialStringCallback;Ljava/nio/charset/Charset;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$PartialStringCallback callback
        start local 2 // java.nio.charset.Charset charset
         0: .line 187
            aload 0 /* this */
            aload 1 /* callback */
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            aload 2 /* charset */
            invokevirtual io.undertow.io.BlockingReceiverImpl.receivePartialString:(Lio/undertow/io/Receiver$PartialStringCallback;Lio/undertow/io/Receiver$ErrorCallback;Ljava/nio/charset/Charset;)V
         1: .line 188
            return
        end local 2 // java.nio.charset.Charset charset
        end local 1 // io.undertow.io.Receiver$PartialStringCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1  callback  Lio/undertow/io/Receiver$PartialStringCallback;
            0    2     2   charset  Ljava/nio/charset/Charset;
    MethodParameters:
          Name  Flags
      callback  
      charset   

  public void receiveFullBytes(io.undertow.io.Receiver$FullBytesCallback, io.undertow.io.Receiver$ErrorCallback);
    descriptor: (Lio/undertow/io/Receiver$FullBytesCallback;Lio/undertow/io/Receiver$ErrorCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$FullBytesCallback callback
        start local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
         0: .line 192
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.done:Z
            ifeq 2
         1: .line 193
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.requestBodyAlreadyRead:()Ljava/lang/IllegalStateException;
            athrow
         2: .line 195
      StackMap locals:
      StackMap stack:
            aload 2 /* errorCallback */
            ifnonnull 3
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 2 /* errorCallback */
      StackMap locals:
      StackMap stack: io.undertow.io.Receiver$ErrorCallback
         4: astore 3 /* error */
        start local 3 // io.undertow.io.Receiver$ErrorCallback error
         5: .line 196
            aload 1 /* callback */
            ifnonnull 7
         6: .line 197
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            ldc "callback"
            invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         7: .line 199
      StackMap locals: io.undertow.io.Receiver$ErrorCallback
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.isRequestComplete:()Z
            ifeq 10
         8: .line 200
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            getstatic io.undertow.io.BlockingReceiverImpl.EMPTY_BYTE_ARRAY:[B
            invokeinterface io.undertow.io.Receiver$FullBytesCallback.handle:(Lio/undertow/server/HttpServerExchange;[B)V
         9: .line 201
            return
        10: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
            getstatic io.undertow.util.Headers.CONTENT_LENGTH:Lio/undertow/util/HttpString;
            invokevirtual io.undertow.util.HeaderMap.getFirst:(Lio/undertow/util/HttpString;)Ljava/lang/String;
            astore 4 /* contentLengthString */
        start local 4 // java.lang.String contentLengthString
        11: .line 206
            aload 4 /* contentLengthString */
            ifnull 18
        12: .line 207
            aload 4 /* contentLengthString */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 5 /* contentLength */
        start local 5 // long contentLength
        13: .line 208
            lload 5 /* contentLength */
            ldc 2147483647
            lcmp
            ifle 16
        14: .line 209
            aload 3 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            new io.undertow.io.Receiver$RequestToLargeException
            dup
            invokespecial io.undertow.io.Receiver$RequestToLargeException.<init>:()V
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        15: .line 210
            return
        16: .line 212
      StackMap locals: java.lang.String long
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            lload 5 /* contentLength */
            l2i
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 7 /* sb */
        start local 7 // java.io.ByteArrayOutputStream sb
        17: .line 213
            goto 20
        end local 7 // java.io.ByteArrayOutputStream sb
        end local 5 // long contentLength
        18: .line 214
      StackMap locals:
      StackMap stack:
            ldc -1
            lstore 5 /* contentLength */
        start local 5 // long contentLength
        19: .line 215
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 7 /* sb */
        start local 7 // java.io.ByteArrayOutputStream sb
        20: .line 217
      StackMap locals: long java.io.ByteArrayOutputStream
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
            ifle 24
        21: .line 218
            lload 5 /* contentLength */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
            i2l
            lcmp
            ifle 24
        22: .line 219
            aload 3 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            new io.undertow.io.Receiver$RequestToLargeException
            dup
            invokespecial io.undertow.io.Receiver$RequestToLargeException.<init>:()V
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        23: .line 220
            return
        24: .line 224
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9
            aconst_null
            astore 10
        25: aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokevirtual io.undertow.server.ServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.getArrayBackedPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            astore 11 /* pooled */
        start local 11 // io.undertow.connector.PooledByteBuffer pooled
        26: .line 225
            goto 28
        start local 8 // int s
        27: .line 226
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$FullBytesCallback io.undertow.io.Receiver$ErrorCallback io.undertow.io.Receiver$ErrorCallback java.lang.String long java.io.ByteArrayOutputStream int java.lang.Throwable java.lang.Throwable io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 7 /* sb */
            aload 11 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            aload 11 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            iload 8 /* s */
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
        end local 8 // int s
        28: .line 225
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$FullBytesCallback io.undertow.io.Receiver$ErrorCallback io.undertow.io.Receiver$ErrorCallback java.lang.String long java.io.ByteArrayOutputStream top java.lang.Throwable java.lang.Throwable io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.inputStream:Ljava/io/InputStream;
            aload 11 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            aload 11 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            aload 11 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual java.io.InputStream.read:([BII)I
            dup
            istore 8 /* s */
        start local 8 // int s
        29: ifgt 27
        30: .line 228
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            aload 7 /* sb */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokeinterface io.undertow.io.Receiver$FullBytesCallback.handle:(Lio/undertow/server/HttpServerExchange;[B)V
        31: .line 229
            aload 11 /* pooled */
            ifnull 39
            aload 11 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
            goto 39
        end local 8 // int s
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 9
            aload 11 /* pooled */
            ifnull 33
            aload 11 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        end local 11 // io.undertow.connector.PooledByteBuffer pooled
      StackMap locals:
      StackMap stack:
        33: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 10
            aload 9
            ifnonnull 35
            aload 10
            astore 9
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 9
            aload 10
            if_acmpeq 36
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        36: aload 9
            athrow
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$FullBytesCallback io.undertow.io.Receiver$ErrorCallback io.undertow.io.Receiver$ErrorCallback java.lang.String long java.io.ByteArrayOutputStream
      StackMap stack: java.io.IOException
        37: astore 9 /* e */
        start local 9 // java.io.IOException e
        38: .line 230
            aload 3 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            aload 9 /* e */
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        end local 9 // java.io.IOException e
        39: .line 233
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.io.ByteArrayOutputStream sb
        end local 5 // long contentLength
        end local 4 // java.lang.String contentLengthString
        end local 3 // io.undertow.io.Receiver$ErrorCallback error
        end local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
        end local 1 // io.undertow.io.Receiver$FullBytesCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   40     0                 this  Lio/undertow/io/BlockingReceiverImpl;
            0   40     1             callback  Lio/undertow/io/Receiver$FullBytesCallback;
            0   40     2        errorCallback  Lio/undertow/io/Receiver$ErrorCallback;
            5   40     3                error  Lio/undertow/io/Receiver$ErrorCallback;
           11   40     4  contentLengthString  Ljava/lang/String;
           13   18     5        contentLength  J
           19   40     5        contentLength  J
           17   18     7                   sb  Ljava/io/ByteArrayOutputStream;
           20   40     7                   sb  Ljava/io/ByteArrayOutputStream;
           27   28     8                    s  I
           29   32     8                    s  I
           26   33    11               pooled  Lio/undertow/connector/PooledByteBuffer;
           38   39     9                    e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          26    31      32  any
          25    34      34  any
          24    37      37  Class java.io.IOException
    MethodParameters:
               Name  Flags
      callback       final
      errorCallback  final

  public void receiveFullBytes(io.undertow.io.Receiver$FullBytesCallback);
    descriptor: (Lio/undertow/io/Receiver$FullBytesCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$FullBytesCallback callback
         0: .line 237
            aload 0 /* this */
            aload 1 /* callback */
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            invokevirtual io.undertow.io.BlockingReceiverImpl.receiveFullBytes:(Lio/undertow/io/Receiver$FullBytesCallback;Lio/undertow/io/Receiver$ErrorCallback;)V
         1: .line 238
            return
        end local 1 // io.undertow.io.Receiver$FullBytesCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1  callback  Lio/undertow/io/Receiver$FullBytesCallback;
    MethodParameters:
          Name  Flags
      callback  

  public void receivePartialBytes(io.undertow.io.Receiver$PartialBytesCallback, io.undertow.io.Receiver$ErrorCallback);
    descriptor: (Lio/undertow/io/Receiver$PartialBytesCallback;Lio/undertow/io/Receiver$ErrorCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$PartialBytesCallback callback
        start local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
         0: .line 242
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.done:Z
            ifeq 2
         1: .line 243
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.requestBodyAlreadyRead:()Ljava/lang/IllegalStateException;
            athrow
         2: .line 245
      StackMap locals:
      StackMap stack:
            aload 2 /* errorCallback */
            ifnonnull 3
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 2 /* errorCallback */
      StackMap locals:
      StackMap stack: io.undertow.io.Receiver$ErrorCallback
         4: astore 3 /* error */
        start local 3 // io.undertow.io.Receiver$ErrorCallback error
         5: .line 246
            aload 1 /* callback */
            ifnonnull 7
         6: .line 247
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            ldc "callback"
            invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         7: .line 249
      StackMap locals: io.undertow.io.Receiver$ErrorCallback
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.isRequestComplete:()Z
            ifeq 10
         8: .line 250
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            getstatic io.undertow.io.BlockingReceiverImpl.EMPTY_BYTE_ARRAY:[B
            iconst_1
            invokeinterface io.undertow.io.Receiver$PartialBytesCallback.handle:(Lio/undertow/server/HttpServerExchange;[BZ)V
         9: .line 251
            return
        10: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
            getstatic io.undertow.util.Headers.CONTENT_LENGTH:Lio/undertow/util/HttpString;
            invokevirtual io.undertow.util.HeaderMap.getFirst:(Lio/undertow/util/HttpString;)Ljava/lang/String;
            astore 4 /* contentLengthString */
        start local 4 // java.lang.String contentLengthString
        11: .line 255
            aload 4 /* contentLengthString */
            ifnull 16
        12: .line 256
            aload 4 /* contentLengthString */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 5 /* contentLength */
        start local 5 // long contentLength
        13: .line 257
            lload 5 /* contentLength */
            ldc 2147483647
            lcmp
            ifle 17
        14: .line 258
            aload 3 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            new io.undertow.io.Receiver$RequestToLargeException
            dup
            invokespecial io.undertow.io.Receiver$RequestToLargeException.<init>:()V
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        15: .line 259
            return
        end local 5 // long contentLength
        16: .line 262
      StackMap locals: java.lang.String
      StackMap stack:
            ldc -1
            lstore 5 /* contentLength */
        start local 5 // long contentLength
        17: .line 264
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
            ifle 21
        18: .line 265
            lload 5 /* contentLength */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.maxBufferSize:I
            i2l
            lcmp
            ifle 21
        19: .line 266
            aload 3 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            new io.undertow.io.Receiver$RequestToLargeException
            dup
            invokespecial io.undertow.io.Receiver$RequestToLargeException.<init>:()V
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        20: .line 267
            return
        21: .line 271
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8
            aconst_null
            astore 9
        22: aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokevirtual io.undertow.server.ServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.getArrayBackedPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            astore 10 /* pooled */
        start local 10 // io.undertow.connector.PooledByteBuffer pooled
        23: .line 272
            goto 27
        start local 7 // int s
        24: .line 273
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$PartialBytesCallback io.undertow.io.Receiver$ErrorCallback io.undertow.io.Receiver$ErrorCallback java.lang.String long int java.lang.Throwable java.lang.Throwable io.undertow.connector.PooledByteBuffer
      StackMap stack:
            iload 7 /* s */
            newarray 8
            astore 11 /* newData */
        start local 11 // byte[] newData
        25: .line 274
            aload 10 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            aload 10 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            aload 11 /* newData */
            iconst_0
            iload 7 /* s */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        26: .line 275
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            aload 11 /* newData */
            iconst_0
            invokeinterface io.undertow.io.Receiver$PartialBytesCallback.handle:(Lio/undertow/server/HttpServerExchange;[BZ)V
        end local 11 // byte[] newData
        end local 7 // int s
        27: .line 272
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$PartialBytesCallback io.undertow.io.Receiver$ErrorCallback io.undertow.io.Receiver$ErrorCallback java.lang.String long top java.lang.Throwable java.lang.Throwable io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.inputStream:Ljava/io/InputStream;
            aload 10 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            aload 10 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            aload 10 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokevirtual java.io.InputStream.read:([BII)I
            dup
            istore 7 /* s */
        start local 7 // int s
        28: ifgt 24
        29: .line 277
            aload 1 /* callback */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            getstatic io.undertow.io.BlockingReceiverImpl.EMPTY_BYTE_ARRAY:[B
            iconst_1
            invokeinterface io.undertow.io.Receiver$PartialBytesCallback.handle:(Lio/undertow/server/HttpServerExchange;[BZ)V
        30: .line 278
            aload 10 /* pooled */
            ifnull 38
            aload 10 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
            goto 38
        end local 7 // int s
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 8
            aload 10 /* pooled */
            ifnull 32
            aload 10 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        end local 10 // io.undertow.connector.PooledByteBuffer pooled
      StackMap locals:
      StackMap stack:
        32: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 9
            aload 8
            ifnonnull 34
            aload 9
            astore 8
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 8
            aload 9
            if_acmpeq 35
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        35: aload 8
            athrow
      StackMap locals: io.undertow.io.BlockingReceiverImpl io.undertow.io.Receiver$PartialBytesCallback io.undertow.io.Receiver$ErrorCallback io.undertow.io.Receiver$ErrorCallback java.lang.String long
      StackMap stack: java.io.IOException
        36: astore 8 /* e */
        start local 8 // java.io.IOException e
        37: .line 279
            aload 3 /* error */
            aload 0 /* this */
            getfield io.undertow.io.BlockingReceiverImpl.exchange:Lio/undertow/server/HttpServerExchange;
            aload 8 /* e */
            invokeinterface io.undertow.io.Receiver$ErrorCallback.error:(Lio/undertow/server/HttpServerExchange;Ljava/io/IOException;)V
        end local 8 // java.io.IOException e
        38: .line 281
      StackMap locals:
      StackMap stack:
            return
        end local 5 // long contentLength
        end local 4 // java.lang.String contentLengthString
        end local 3 // io.undertow.io.Receiver$ErrorCallback error
        end local 2 // io.undertow.io.Receiver$ErrorCallback errorCallback
        end local 1 // io.undertow.io.Receiver$PartialBytesCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   39     0                 this  Lio/undertow/io/BlockingReceiverImpl;
            0   39     1             callback  Lio/undertow/io/Receiver$PartialBytesCallback;
            0   39     2        errorCallback  Lio/undertow/io/Receiver$ErrorCallback;
            5   39     3                error  Lio/undertow/io/Receiver$ErrorCallback;
           11   39     4  contentLengthString  Ljava/lang/String;
           13   16     5        contentLength  J
           17   39     5        contentLength  J
           24   27     7                    s  I
           28   31     7                    s  I
           23   32    10               pooled  Lio/undertow/connector/PooledByteBuffer;
           25   27    11              newData  [B
           37   38     8                    e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          23    30      31  any
          22    33      33  any
          21    36      36  Class java.io.IOException
    MethodParameters:
               Name  Flags
      callback       final
      errorCallback  final

  public void receivePartialBytes(io.undertow.io.Receiver$PartialBytesCallback);
    descriptor: (Lio/undertow/io/Receiver$PartialBytesCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.undertow.io.BlockingReceiverImpl this
        start local 1 // io.undertow.io.Receiver$PartialBytesCallback callback
         0: .line 285
            aload 0 /* this */
            aload 1 /* callback */
            getstatic io.undertow.io.BlockingReceiverImpl.END_EXCHANGE:Lio/undertow/io/Receiver$ErrorCallback;
            invokevirtual io.undertow.io.BlockingReceiverImpl.receivePartialBytes:(Lio/undertow/io/Receiver$PartialBytesCallback;Lio/undertow/io/Receiver$ErrorCallback;)V
         1: .line 286
            return
        end local 1 // io.undertow.io.Receiver$PartialBytesCallback callback
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/undertow/io/BlockingReceiverImpl;
            0    2     1  callback  Lio/undertow/io/Receiver$PartialBytesCallback;
    MethodParameters:
          Name  Flags
      callback  

  public void pause();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.undertow.io.BlockingReceiverImpl this
         0: .line 291
            return
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/io/BlockingReceiverImpl;

  public void resume();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.undertow.io.BlockingReceiverImpl this
         0: .line 296
            return
        end local 0 // io.undertow.io.BlockingReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/io/BlockingReceiverImpl;
}
SourceFile: "BlockingReceiverImpl.java"
NestMembers:
  io.undertow.io.BlockingReceiverImpl$1
InnerClasses:
  io.undertow.io.BlockingReceiverImpl$1
  public abstract ErrorCallback = io.undertow.io.Receiver$ErrorCallback of io.undertow.io.Receiver
  public abstract FullBytesCallback = io.undertow.io.Receiver$FullBytesCallback of io.undertow.io.Receiver
  public abstract FullStringCallback = io.undertow.io.Receiver$FullStringCallback of io.undertow.io.Receiver
  public abstract PartialBytesCallback = io.undertow.io.Receiver$PartialBytesCallback of io.undertow.io.Receiver
  public abstract PartialStringCallback = io.undertow.io.Receiver$PartialStringCallback of io.undertow.io.Receiver
  public RequestToLargeException = io.undertow.io.Receiver$RequestToLargeException of io.undertow.io.Receiver