final class io.undertow.server.protocol.ajp.AjpReadListener implements org.xnio.ChannelListener<org.xnio.channels.StreamSourceChannel>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.undertow.server.protocol.ajp.AjpReadListener
  super_class: java.lang.Object
{
  private static final byte[] CPONG;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.undertow.server.protocol.ajp.AjpServerConnection connection;
    descriptor: Lio/undertow/server/protocol/ajp/AjpServerConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String scheme;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean recordRequestStartTime;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private io.undertow.server.protocol.ajp.AjpRequestParseState state;
    descriptor: Lio/undertow/server/protocol/ajp/AjpRequestParseState;
    flags: (0x0002) ACC_PRIVATE

  private io.undertow.server.HttpServerExchange httpServerExchange;
    descriptor: Lio/undertow/server/HttpServerExchange;
    flags: (0x0002) ACC_PRIVATE

  private volatile int read;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private final long maxEntitySize;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.undertow.server.protocol.ajp.AjpRequestParser parser;
    descriptor: Lio/undertow/server/protocol/ajp/AjpRequestParser;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private org.xnio.conduits.WriteReadyHandler$ChannelListenerHandler<org.xnio.conduits.ConduitStreamSinkChannel> writeReadyHandler;
    descriptor: Lorg/xnio/conduits/WriteReadyHandler$ChannelListenerHandler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/xnio/conduits/WriteReadyHandler$ChannelListenerHandler<Lorg/xnio/conduits/ConduitStreamSinkChannel;>;

  private io.undertow.server.protocol.ParseTimeoutUpdater parseTimeoutUpdater;
    descriptor: Lio/undertow/server/protocol/ParseTimeoutUpdater;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 58
            iconst_5
            newarray 8
            dup
            iconst_0
            bipush 65
            bastore
            dup
            iconst_1
            bipush 66
            bastore
            dup
            iconst_3
            iconst_1
            bastore
            dup
            iconst_4
            bipush 9
            bastore
            putstatic io.undertow.server.protocol.ajp.AjpReadListener.CPONG:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(io.undertow.server.protocol.ajp.AjpServerConnection, java.lang.String, io.undertow.server.protocol.ajp.AjpRequestParser, io.undertow.server.ConnectorStatisticsImpl);
    descriptor: (Lio/undertow/server/protocol/ajp/AjpServerConnection;Ljava/lang/String;Lio/undertow/server/protocol/ajp/AjpRequestParser;Lio/undertow/server/ConnectorStatisticsImpl;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=7, args_size=5
        start local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
        start local 1 // io.undertow.server.protocol.ajp.AjpServerConnection connection
        start local 2 // java.lang.String scheme
        start local 3 // io.undertow.server.protocol.ajp.AjpRequestParser parser
        start local 4 // io.undertow.server.ConnectorStatisticsImpl connectorStatistics
         0: .line 75
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            new io.undertow.server.protocol.ajp.AjpRequestParseState
            dup
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParseState.<init>:()V
            putfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
         2: .line 66
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.ajp.AjpReadListener.read:I
         3: .line 76
            aload 0 /* this */
            aload 1 /* connection */
            putfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
         4: .line 77
            aload 0 /* this */
            aload 2 /* scheme */
            putfield io.undertow.server.protocol.ajp.AjpReadListener.scheme:Ljava/lang/String;
         5: .line 78
            aload 0 /* this */
            aload 3 /* parser */
            putfield io.undertow.server.protocol.ajp.AjpReadListener.parser:Lio/undertow/server/protocol/ajp/AjpRequestParser;
         6: .line 79
            aload 0 /* this */
            aload 4 /* connectorStatistics */
            putfield io.undertow.server.protocol.ajp.AjpReadListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
         7: .line 80
            aload 0 /* this */
            aload 1 /* connection */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
            getstatic io.undertow.UndertowOptions.MAX_HEADER_SIZE:Lorg/xnio/Option;
            ldc 1048576
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            putfield io.undertow.server.protocol.ajp.AjpReadListener.maxRequestSize:I
         8: .line 81
            aload 0 /* this */
            aload 1 /* connection */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
            getstatic io.undertow.UndertowOptions.MAX_ENTITY_SIZE:Lorg/xnio/Option;
            ldc -1
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;J)J
            putfield io.undertow.server.protocol.ajp.AjpReadListener.maxEntitySize:J
         9: .line 82
            aload 0 /* this */
            new org.xnio.conduits.WriteReadyHandler$ChannelListenerHandler
            dup
            aload 1 /* connection */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokespecial org.xnio.conduits.WriteReadyHandler$ChannelListenerHandler.<init>:(Lorg/xnio/channels/SuspendableWriteChannel;)V
            putfield io.undertow.server.protocol.ajp.AjpReadListener.writeReadyHandler:Lorg/xnio/conduits/WriteReadyHandler$ChannelListenerHandler;
        10: .line 83
            aload 0 /* this */
            aload 1 /* connection */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
            getstatic io.undertow.UndertowOptions.RECORD_REQUEST_START_TIME:Lorg/xnio/Option;
            iconst_0
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
            putfield io.undertow.server.protocol.ajp.AjpReadListener.recordRequestStartTime:Z
        11: .line 84
            aload 1 /* connection */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
            getstatic io.undertow.UndertowOptions.REQUEST_PARSE_TIMEOUT:Lorg/xnio/Option;
            iconst_m1
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            istore 5 /* requestParseTimeout */
        start local 5 // int requestParseTimeout
        12: .line 85
            aload 1 /* connection */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
            getstatic io.undertow.UndertowOptions.NO_REQUEST_TIMEOUT:Lorg/xnio/Option;
            iconst_m1
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            istore 6 /* requestIdleTimeout */
        start local 6 // int requestIdleTimeout
        13: .line 86
            iload 6 /* requestIdleTimeout */
            ifge 16
            iload 5 /* requestParseTimeout */
            ifge 16
        14: .line 87
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
        15: .line 88
            goto 18
        16: .line 89
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener io.undertow.server.protocol.ajp.AjpServerConnection java.lang.String io.undertow.server.protocol.ajp.AjpRequestParser io.undertow.server.ConnectorStatisticsImpl int int
      StackMap stack:
            aload 0 /* this */
            new io.undertow.server.protocol.ParseTimeoutUpdater
            dup
            aload 1 /* connection */
            iload 5 /* requestParseTimeout */
            i2l
            iload 6 /* requestIdleTimeout */
            i2l
            invokespecial io.undertow.server.protocol.ParseTimeoutUpdater.<init>:(Lorg/xnio/channels/ConnectedChannel;JJ)V
            putfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
        17: .line 90
            aload 1 /* connection */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.addCloseListener:(Lio/undertow/server/ServerConnection$CloseListener;)V
        18: .line 92
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int requestIdleTimeout
        end local 5 // int requestParseTimeout
        end local 4 // io.undertow.server.ConnectorStatisticsImpl connectorStatistics
        end local 3 // io.undertow.server.protocol.ajp.AjpRequestParser parser
        end local 2 // java.lang.String scheme
        end local 1 // io.undertow.server.protocol.ajp.AjpServerConnection connection
        end local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   19     0                 this  Lio/undertow/server/protocol/ajp/AjpReadListener;
            0   19     1           connection  Lio/undertow/server/protocol/ajp/AjpServerConnection;
            0   19     2               scheme  Ljava/lang/String;
            0   19     3               parser  Lio/undertow/server/protocol/ajp/AjpRequestParser;
            0   19     4  connectorStatistics  Lio/undertow/server/ConnectorStatisticsImpl;
           12   19     5  requestParseTimeout  I
           13   19     6   requestIdleTimeout  I
    MethodParameters:
                     Name  Flags
      connection           final
      scheme               final
      parser               
      connectorStatistics  

  public void startRequest();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
         0: .line 95
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.resetChannel:()Lio/undertow/server/AbstractServerConnection$ConduitState;
            pop
         1: .line 96
            aload 0 /* this */
            new io.undertow.server.protocol.ajp.AjpRequestParseState
            dup
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParseState.<init>:()V
            putfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
         2: .line 97
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.ajp.AjpReadListener.read:I
         3: .line 98
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
            ifnull 5
         4: .line 99
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
            invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.connectionIdle:()V
         5: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            aconst_null
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.setCurrentExchange:(Lio/undertow/server/HttpServerExchange;)V
         6: .line 102
            return
        end local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lio/undertow/server/protocol/ajp/AjpReadListener;

  public void handleEvent(org.xnio.channels.StreamSourceChannel);
    descriptor: (Lorg/xnio/channels/StreamSourceChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=12, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
        start local 1 // org.xnio.channels.StreamSourceChannel channel
         0: .line 105
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getOriginalSinkConduit:()Lorg/xnio/conduits/StreamSinkConduit;
            invokeinterface org.xnio.conduits.StreamSinkConduit.isWriteShutdown:()Z
            ifne 1
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getOriginalSourceConduit:()Lorg/xnio/conduits/StreamSourceConduit;
            invokeinterface org.xnio.conduits.StreamSourceConduit.isReadShutdown:()Z
            ifeq 4
         1: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
         2: .line 107
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.suspendReads:()V
         3: .line 108
            return
         4: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getExtraBytes:()Lio/undertow/connector/PooledByteBuffer;
            astore 2 /* existing */
        start local 2 // io.undertow.connector.PooledByteBuffer existing
         5: .line 113
            aload 2 /* existing */
            ifnonnull 6
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            goto 7
      StackMap locals: io.undertow.connector.PooledByteBuffer
      StackMap stack:
         6: aload 2 /* existing */
      StackMap locals:
      StackMap stack: io.undertow.connector.PooledByteBuffer
         7: astore 3 /* pooled */
        start local 3 // io.undertow.connector.PooledByteBuffer pooled
         8: .line 114
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            astore 4 /* buffer */
        start local 4 // java.nio.ByteBuffer buffer
         9: .line 115
            iconst_1
            istore 5 /* free */
        start local 5 // boolean free
        10: .line 116
            iconst_0
            istore 6 /* bytesRead */
        start local 6 // boolean bytesRead
        11: .line 120
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int
      StackMap stack:
            aload 2 /* existing */
            ifnonnull 20
        12: .line 121
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        13: .line 123
            aload 1 /* channel */
            aload 4 /* buffer */
            invokeinterface org.xnio.channels.StreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 7 /* res */
        start local 7 // int res
        14: .line 124
            goto 21
        end local 7 // int res
      StackMap locals:
      StackMap stack: java.io.IOException
        15: astore 8 /* e */
        start local 8 // java.io.IOException e
        16: .line 125
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            aload 8 /* e */
            invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
        17: .line 126
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        18: .line 268
            iload 5 /* free */
            ifeq 19
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        19: .line 127
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int top java.io.IOException
      StackMap stack:
            return
        end local 8 // java.io.IOException e
        20: .line 130
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int
      StackMap stack:
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 7 /* res */
        start local 7 // int res
        21: .line 132
      StackMap locals: int
      StackMap stack:
            iload 7 /* res */
            ifne 29
        22: .line 134
            iload 6 /* bytesRead */
            ifeq 24
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
            ifnull 24
        23: .line 135
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
            invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.failedParse:()V
        24: .line 137
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.isReadResumed:()Z
            ifne 27
        25: .line 138
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 0 /* this */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
        26: .line 139
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.resumeReads:()V
        27: .line 268
      StackMap locals:
      StackMap stack:
            iload 5 /* free */
            ifeq 28
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        28: .line 141
      StackMap locals:
      StackMap stack:
            return
        29: .line 143
      StackMap locals:
      StackMap stack:
            iload 7 /* res */
            iconst_m1
            if_icmpne 42
        30: .line 145
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.shutdownReads:()V
        31: .line 146
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            astore 8 /* responseChannel */
        start local 8 // org.xnio.channels.StreamSinkChannel responseChannel
        32: .line 147
            aload 8 /* responseChannel */
            invokeinterface org.xnio.channels.StreamSinkChannel.shutdownWrites:()V
        33: .line 148
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        end local 8 // org.xnio.channels.StreamSinkChannel responseChannel
        34: .line 149
            goto 40
      StackMap locals:
      StackMap stack: java.io.IOException
        35: astore 8 /* e */
        start local 8 // java.io.IOException e
        36: .line 150
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            aload 8 /* e */
            invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
        37: .line 152
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        38: .line 268
            iload 5 /* free */
            ifeq 39
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        39: .line 153
      StackMap locals: java.io.IOException
      StackMap stack:
            return
        end local 8 // java.io.IOException e
        40: .line 268
      StackMap locals:
      StackMap stack:
            iload 5 /* free */
            ifeq 41
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        41: .line 155
      StackMap locals:
      StackMap stack:
            return
        42: .line 157
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* bytesRead */
        43: .line 159
            aload 2 /* existing */
            ifnull 47
        44: .line 160
            aconst_null
            astore 2 /* existing */
        45: .line 161
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            aconst_null
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.setExtraBytes:(Lio/undertow/connector/PooledByteBuffer;)V
        46: .line 162
            goto 48
        47: .line 163
      StackMap locals:
      StackMap stack:
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        48: .line 165
      StackMap locals:
      StackMap stack:
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 8 /* begin */
        start local 8 // int begin
        49: .line 166
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
            ifnonnull 51
        50: .line 167
            aload 0 /* this */
            new io.undertow.server.HttpServerExchange
            dup
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.maxEntitySize:J
            invokespecial io.undertow.server.HttpServerExchange.<init>:(Lio/undertow/server/ServerConnection;J)V
            putfield io.undertow.server.protocol.ajp.AjpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
        51: .line 169
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.parser:Lio/undertow/server/protocol/ajp/AjpRequestParser;
            aload 4 /* buffer */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParser.parse:(Ljava/nio/ByteBuffer;Lio/undertow/server/protocol/ajp/AjpRequestParseState;Lio/undertow/server/HttpServerExchange;)V
        52: .line 171
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.ajp.AjpReadListener.read:I
            iload 8 /* begin */
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            isub
            iadd
            putfield io.undertow.server.protocol.ajp.AjpReadListener.read:I
        53: .line 172
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 56
        54: .line 173
            iconst_0
            istore 5 /* free */
        55: .line 174
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            aload 3 /* pooled */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.setExtraBytes:(Lio/undertow/connector/PooledByteBuffer;)V
        56: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.read:I
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.maxRequestSize:I
            if_icmple 61
        57: .line 177
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getPeerAddress:()Ljava/net/SocketAddress;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.maxRequestSize:I
            invokeinterface io.undertow.UndertowLogger.requestHeaderWasTooLarge:(Ljava/net/SocketAddress;I)V
        58: .line 178
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        59: .line 268
            iload 5 /* free */
            ifeq 60
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        60: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 8 // int begin
        61: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParseState.isComplete:()Z
            ifeq 11
        62: .line 183
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
            ifnull 64
        63: .line 184
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.parseTimeoutUpdater:Lio/undertow/server/protocol/ParseTimeoutUpdater;
            invokevirtual io.undertow.server.protocol.ParseTimeoutUpdater.requestStarted:()V
        64: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.prefix:B
            iconst_2
            if_icmpeq 79
        65: .line 187
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.prefix:B
            bipush 10
            if_icmpne 69
        66: .line 188
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            ldc "Received CPING, sending CPONG"
            invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;)V
        67: .line 189
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.ajp.AjpReadListener.handleCPing:()V
        68: .line 190
            goto 77
      StackMap locals:
      StackMap stack:
        69: aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.prefix:B
            bipush 9
            if_icmpne 75
        70: .line 191
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            ldc "Received CPONG, starting next request"
            invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;)V
        71: .line 192
            aload 0 /* this */
            new io.undertow.server.protocol.ajp.AjpRequestParseState
            dup
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParseState.<init>:()V
            putfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
        72: .line 193
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 0 /* this */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
        73: .line 194
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.resumeReads:()V
        74: .line 195
            goto 77
        75: .line 196
      StackMap locals:
      StackMap stack:
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.prefix:B
            invokeinterface io.undertow.UndertowLogger.ignoringAjpRequestWithPrefixCode:(B)V
        76: .line 197
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        77: .line 268
      StackMap locals:
      StackMap stack:
            iload 5 /* free */
            ifeq 78
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        78: .line 199
      StackMap locals:
      StackMap stack:
            return
        79: .line 204
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            aconst_null
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
        80: .line 205
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.suspendReads:()V
        81: .line 207
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
            astore 8 /* httpServerExchange */
        start local 8 // io.undertow.server.HttpServerExchange httpServerExchange
        82: .line 208
            new io.undertow.server.protocol.ajp.AjpServerResponseConduit
            dup
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getConduit:()Lorg/xnio/conduits/StreamSinkConduit;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            aload 8 /* httpServerExchange */
            new io.undertow.server.protocol.ajp.AjpReadListener$1
            dup
            aload 0 /* this */
            aload 8 /* httpServerExchange */
            invokespecial io.undertow.server.protocol.ajp.AjpReadListener$1.<init>:(Lio/undertow/server/protocol/ajp/AjpReadListener;Lio/undertow/server/HttpServerExchange;)V
        83: .line 213
            aload 8 /* httpServerExchange */
            invokevirtual io.undertow.server.HttpServerExchange.getRequestMethod:()Lio/undertow/util/HttpString;
            getstatic io.undertow.util.Methods.HEAD:Lio/undertow/util/HttpString;
            invokevirtual io.undertow.util.HttpString.equals:(Lio/undertow/util/HttpString;)Z
        84: .line 208
            invokespecial io.undertow.server.protocol.ajp.AjpServerResponseConduit.<init>:(Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/HttpServerExchange;Lio/undertow/conduits/ConduitListener;Z)V
            astore 9 /* responseConduit */
        start local 9 // io.undertow.server.protocol.ajp.AjpServerResponseConduit responseConduit
        85: .line 214
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aload 9 /* responseConduit */
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
        86: .line 215
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 0 /* this */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
            aload 9 /* responseConduit */
            aload 8 /* httpServerExchange */
            invokevirtual io.undertow.server.protocol.ajp.AjpReadListener.createSourceConduit:(Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;Lio/undertow/server/HttpServerExchange;)Lorg/xnio/conduits/StreamSourceConduit;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
        87: .line 217
            aload 9 /* responseConduit */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.writeReadyHandler:Lorg/xnio/conduits/WriteReadyHandler$ChannelListenerHandler;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerResponseConduit.setWriteReadyHandler:(Lorg/xnio/conduits/WriteReadyHandler;)V
        88: .line 220
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParseState.createSslSessionInfo:()Lio/undertow/server/BasicSSLSessionInfo;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.setSSLSessionInfo:(Lio/undertow/server/BasicSSLSessionInfo;)V
        89: .line 221
            aload 8 /* httpServerExchange */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParseState.createPeerAddress:()Ljava/net/InetSocketAddress;
            invokevirtual io.undertow.server.HttpServerExchange.setSourceAddress:(Ljava/net/InetSocketAddress;)Lio/undertow/server/HttpServerExchange;
            pop
        90: .line 222
            aload 8 /* httpServerExchange */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            invokevirtual io.undertow.server.protocol.ajp.AjpRequestParseState.createDestinationAddress:()Ljava/net/InetSocketAddress;
            invokevirtual io.undertow.server.HttpServerExchange.setDestinationAddress:(Ljava/net/InetSocketAddress;)Lio/undertow/server/HttpServerExchange;
            pop
        91: .line 223
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.scheme:Ljava/lang/String;
            ifnull 93
        92: .line 224
            aload 8 /* httpServerExchange */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.scheme:Ljava/lang/String;
            invokevirtual io.undertow.server.HttpServerExchange.setRequestScheme:(Ljava/lang/String;)Lio/undertow/server/HttpServerExchange;
            pop
        93: .line 226
      StackMap locals: io.undertow.server.HttpServerExchange io.undertow.server.protocol.ajp.AjpServerResponseConduit
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.attributes:Ljava/util/Map;
            ifnull 95
        94: .line 227
            aload 8 /* httpServerExchange */
            getstatic io.undertow.server.HttpServerExchange.REQUEST_ATTRIBUTES:Lio/undertow/util/AttachmentKey;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.attributes:Ljava/util/Map;
            invokevirtual io.undertow.server.HttpServerExchange.putAttachment:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        95: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
            astore 10 /* oldState */
        start local 10 // io.undertow.server.protocol.ajp.AjpRequestParseState oldState
        96: .line 230
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
        97: .line 231
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.ajp.AjpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
        98: .line 232
            aload 8 /* httpServerExchange */
            iconst_1
            invokevirtual io.undertow.server.HttpServerExchange.setPersistent:(Z)Lio/undertow/server/HttpServerExchange;
            pop
        99: .line 234
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.recordRequestStartTime:Z
            ifeq 101
       100: .line 235
            aload 8 /* httpServerExchange */
            invokestatic io.undertow.server.Connectors.setRequestStartTime:(Lio/undertow/server/HttpServerExchange;)V
       101: .line 237
      StackMap locals: io.undertow.server.protocol.ajp.AjpRequestParseState
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            aload 8 /* httpServerExchange */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.setCurrentExchange:(Lio/undertow/server/HttpServerExchange;)V
       102: .line 238
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
            ifnull 104
       103: .line 239
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
            aload 8 /* httpServerExchange */
            invokevirtual io.undertow.server.ConnectorStatisticsImpl.setup:(Lio/undertow/server/HttpServerExchange;)V
       104: .line 241
      StackMap locals:
      StackMap stack:
            aload 8 /* httpServerExchange */
            invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
            invokestatic io.undertow.server.Connectors.areRequestHeadersValid:(Lio/undertow/util/HeaderMap;)Z
            ifne 107
       105: .line 242
            aload 10 /* oldState */
            iconst_1
            putfield io.undertow.server.protocol.ajp.AjpRequestParseState.badRequest:Z
       106: .line 243
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            ldc "Invalid AJP request from %s, request contained invalid headers"
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getPeerAddress:()Ljava/net/SocketAddress;
            invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
       107: .line 246
      StackMap locals:
      StackMap stack:
            aload 10 /* oldState */
            getfield io.undertow.server.protocol.ajp.AjpRequestParseState.badRequest:Z
            ifeq 112
       108: .line 247
            aload 8 /* httpServerExchange */
            sipush 400
            invokevirtual io.undertow.server.HttpServerExchange.setStatusCode:(I)Lio/undertow/server/HttpServerExchange;
            pop
       109: .line 248
            aload 8 /* httpServerExchange */
            invokevirtual io.undertow.server.HttpServerExchange.endExchange:()Lio/undertow/server/HttpServerExchange;
            pop
       110: .line 249
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
       111: .line 250
            goto 131
       112: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getRootHandler:()Lio/undertow/server/HttpHandler;
            aload 8 /* httpServerExchange */
            invokestatic io.undertow.server.Connectors.executeRootHandler:(Lio/undertow/server/HttpHandler;Lio/undertow/server/HttpServerExchange;)V
        end local 10 // io.undertow.server.protocol.ajp.AjpRequestParseState oldState
       113: .line 254
            goto 131
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int int io.undertow.server.HttpServerExchange io.undertow.server.protocol.ajp.AjpServerResponseConduit
      StackMap stack: java.lang.Throwable
       114: astore 10 /* t */
        start local 10 // java.lang.Throwable t
       115: .line 256
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            aload 10 /* t */
            invokeinterface io.undertow.UndertowLogger.exceptionProcessingRequest:(Ljava/lang/Throwable;)V
       116: .line 257
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        end local 10 // java.lang.Throwable t
        end local 9 // io.undertow.server.protocol.ajp.AjpServerResponseConduit responseConduit
        end local 8 // io.undertow.server.HttpServerExchange httpServerExchange
        end local 7 // int res
       117: .line 259
            goto 131
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int
      StackMap stack: io.undertow.util.BadRequestException
       118: astore 7 /* e */
        start local 7 // io.undertow.util.BadRequestException e
       119: .line 260
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            aload 7 /* e */
            invokeinterface io.undertow.UndertowLogger.failedToParseRequest:(Ljava/lang/Throwable;)V
       120: .line 261
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
            sipush 400
            invokevirtual io.undertow.server.HttpServerExchange.setStatusCode:(I)Lio/undertow/server/HttpServerExchange;
            pop
       121: .line 262
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.endExchange:()Lio/undertow/server/HttpServerExchange;
            pop
       122: .line 263
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        end local 7 // io.undertow.util.BadRequestException e
       123: .line 268
            iload 5 /* free */
            ifeq 132
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
            goto 132
       124: .line 264
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
       125: .line 265
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            aload 7 /* e */
            invokeinterface io.undertow.UndertowLogger.exceptionProcessingRequest:(Ljava/lang/Throwable;)V
       126: .line 266
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        end local 7 // java.lang.Exception e
       127: .line 268
            iload 5 /* free */
            ifeq 132
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
            goto 132
       128: .line 267
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
       129: .line 268
            iload 5 /* free */
            ifeq 130
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
       130: .line 269
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int top top top top java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
       131: .line 268
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer int int
      StackMap stack:
            iload 5 /* free */
            ifeq 132
            aload 3 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
       132: .line 270
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean bytesRead
        end local 5 // boolean free
        end local 4 // java.nio.ByteBuffer buffer
        end local 3 // io.undertow.connector.PooledByteBuffer pooled
        end local 2 // io.undertow.connector.PooledByteBuffer existing
        end local 1 // org.xnio.channels.StreamSourceChannel channel
        end local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  133     0                this  Lio/undertow/server/protocol/ajp/AjpReadListener;
            0  133     1             channel  Lorg/xnio/channels/StreamSourceChannel;
            5  133     2            existing  Lio/undertow/connector/PooledByteBuffer;
            8  133     3              pooled  Lio/undertow/connector/PooledByteBuffer;
            9  133     4              buffer  Ljava/nio/ByteBuffer;
           10  133     5                free  Z
           11  133     6           bytesRead  Z
           14   15     7                 res  I
           21  117     7                 res  I
           16   20     8                   e  Ljava/io/IOException;
           32   34     8     responseChannel  Lorg/xnio/channels/StreamSinkChannel;
           36   40     8                   e  Ljava/io/IOException;
           49   61     8               begin  I
           82  117     8  httpServerExchange  Lio/undertow/server/HttpServerExchange;
           85  117     9     responseConduit  Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
           96  113    10            oldState  Lio/undertow/server/protocol/ajp/AjpRequestParseState;
          115  117    10                   t  Ljava/lang/Throwable;
          119  123     7                   e  Lio/undertow/util/BadRequestException;
          125  127     7                   e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          13    14      15  Class java.io.IOException
          30    34      35  Class java.io.IOException
          88   113     114  Class java.lang.Throwable
          11    18     118  Class io.undertow.util.BadRequestException
          20    27     118  Class io.undertow.util.BadRequestException
          29    38     118  Class io.undertow.util.BadRequestException
          42    59     118  Class io.undertow.util.BadRequestException
          61    77     118  Class io.undertow.util.BadRequestException
          79   117     118  Class io.undertow.util.BadRequestException
          11    18     124  Class java.lang.Exception
          20    27     124  Class java.lang.Exception
          29    38     124  Class java.lang.Exception
          42    59     124  Class java.lang.Exception
          61    77     124  Class java.lang.Exception
          79   117     124  Class java.lang.Exception
          11    18     128  any
          20    27     128  any
          29    38     128  any
          42    59     128  any
          61    77     128  any
          79   123     128  any
         124   127     128  any
    MethodParameters:
         Name  Flags
      channel  final

  private void handleCPing();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
         0: .line 273
            aload 0 /* this */
            new io.undertow.server.protocol.ajp.AjpRequestParseState
            dup
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParseState.<init>:()V
            putfield io.undertow.server.protocol.ajp.AjpReadListener.state:Lio/undertow/server/protocol/ajp/AjpRequestParseState;
         1: .line 274
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
            astore 1 /* underlyingChannel */
        start local 1 // org.xnio.StreamConnection underlyingChannel
         2: .line 275
            aload 1 /* underlyingChannel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
         3: .line 276
            getstatic io.undertow.server.protocol.ajp.AjpReadListener.CPONG:[B
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 2 /* buffer */
        start local 2 // java.nio.ByteBuffer buffer
         4: .line 280
      StackMap locals: org.xnio.StreamConnection java.nio.ByteBuffer
      StackMap stack:
            aload 1 /* underlyingChannel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aload 2 /* buffer */
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 3 /* res */
        start local 3 // int res
         5: .line 281
            iload 3 /* res */
            ifne 9
         6: .line 282
            aload 1 /* underlyingChannel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            new io.undertow.server.protocol.ajp.AjpReadListener$2
            dup
            aload 0 /* this */
            aload 2 /* buffer */
            aload 1 /* underlyingChannel */
            invokespecial io.undertow.server.protocol.ajp.AjpReadListener$2.<init>:(Lio/undertow/server/protocol/ajp/AjpReadListener;Ljava/nio/ByteBuffer;Lorg/xnio/StreamConnection;)V
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setWriteListener:(Lorg/xnio/ChannelListener;)V
         7: .line 301
            aload 1 /* underlyingChannel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
         8: .line 302
            return
         9: .line 304
      StackMap locals: int
      StackMap stack:
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 4
        10: .line 305
            aload 0 /* this */
            aload 1 /* underlyingChannel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual io.undertow.server.protocol.ajp.AjpReadListener.handleEvent:(Lorg/xnio/channels/StreamSourceChannel;)V
        11: .line 306
            goto 15
        end local 3 // int res
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.StreamConnection java.nio.ByteBuffer
      StackMap stack: java.io.IOException
        12: astore 4 /* e */
        start local 4 // java.io.IOException e
        13: .line 307
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            aload 4 /* e */
            invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
        14: .line 308
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.connection:Lio/undertow/server/protocol/ajp/AjpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        end local 4 // java.io.IOException e
        15: .line 310
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.nio.ByteBuffer buffer
        end local 1 // org.xnio.StreamConnection underlyingChannel
        end local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lio/undertow/server/protocol/ajp/AjpReadListener;
            2   16     1  underlyingChannel  Lorg/xnio/StreamConnection;
            4   16     2             buffer  Ljava/nio/ByteBuffer;
            5   12     3                res  I
           13   15     4                  e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     8      12  Class java.io.IOException
           9    11      12  Class java.io.IOException

  public void exchangeComplete(io.undertow.server.HttpServerExchange);
    descriptor: (Lio/undertow/server/HttpServerExchange;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
        start local 1 // io.undertow.server.HttpServerExchange exchange
         0: .line 313
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.isUpgrade:()Z
            ifne 6
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.isPersistent:()Z
            ifeq 6
         1: .line 314
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.ajp.AjpReadListener.startRequest:()V
         2: .line 315
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            checkcast io.undertow.server.protocol.ajp.AjpServerConnection
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.getChannel:()Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            astore 2 /* channel */
        start local 2 // org.xnio.conduits.ConduitStreamSourceChannel channel
         3: .line 316
            aload 2 /* channel */
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 0 /* this */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         4: .line 317
            aload 2 /* channel */
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.wakeupReads:()V
        end local 2 // org.xnio.conduits.ConduitStreamSourceChannel channel
         5: .line 318
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.isPersistent:()Z
            ifne 8
         7: .line 319
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
         8: .line 321
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.undertow.server.HttpServerExchange exchange
        end local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lio/undertow/server/protocol/ajp/AjpReadListener;
            0    9     1  exchange  Lio/undertow/server/HttpServerExchange;
            3    5     2   channel  Lorg/xnio/conduits/ConduitStreamSourceChannel;
    MethodParameters:
          Name  Flags
      exchange  final

  private org.xnio.conduits.StreamSourceConduit createSourceConduit(org.xnio.conduits.StreamSourceConduit, io.undertow.server.protocol.ajp.AjpServerResponseConduit, io.undertow.server.HttpServerExchange);
    descriptor: (Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;Lio/undertow/server/HttpServerExchange;)Lorg/xnio/conduits/StreamSourceConduit;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=13, args_size=4
        start local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
        start local 1 // org.xnio.conduits.StreamSourceConduit underlyingConduit
        start local 2 // io.undertow.server.protocol.ajp.AjpServerResponseConduit responseConduit
        start local 3 // io.undertow.server.HttpServerExchange exchange
         0: .line 325
            new io.undertow.conduits.ReadDataStreamSourceConduit
            dup
            aload 1 /* underlyingConduit */
            aload 3 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            checkcast io.undertow.server.AbstractServerConnection
            invokespecial io.undertow.conduits.ReadDataStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/server/AbstractServerConnection;)V
            astore 4 /* conduit */
        start local 4 // io.undertow.conduits.ReadDataStreamSourceConduit conduit
         1: .line 327
            aload 3 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
            astore 5 /* requestHeaders */
        start local 5 // io.undertow.util.HeaderMap requestHeaders
         2: .line 328
            getstatic io.undertow.util.Headers.IDENTITY:Lio/undertow/util/HttpString;
            astore 6 /* transferEncoding */
        start local 6 // io.undertow.util.HttpString transferEncoding
         3: .line 330
            aload 5 /* requestHeaders */
            getstatic io.undertow.util.Headers.TRANSFER_ENCODING:Lio/undertow/util/HttpString;
            invokevirtual io.undertow.util.HeaderMap.getLast:(Lio/undertow/util/HttpString;)Ljava/lang/String;
            astore 8 /* teHeader */
        start local 8 // java.lang.String teHeader
         4: .line 331
            aload 8 /* teHeader */
            ifnull 5
            iconst_1
            goto 6
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.conduits.StreamSourceConduit io.undertow.server.protocol.ajp.AjpServerResponseConduit io.undertow.server.HttpServerExchange io.undertow.conduits.ReadDataStreamSourceConduit io.undertow.util.HeaderMap io.undertow.util.HttpString top java.lang.String
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 9 /* hasTransferEncoding */
        start local 9 // boolean hasTransferEncoding
         7: .line 332
            iload 9 /* hasTransferEncoding */
            ifeq 9
         8: .line 333
            new io.undertow.util.HttpString
            dup
            aload 8 /* teHeader */
            invokespecial io.undertow.util.HttpString.<init>:(Ljava/lang/String;)V
            astore 6 /* transferEncoding */
         9: .line 335
      StackMap locals: int
      StackMap stack:
            aload 5 /* requestHeaders */
            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 10 /* requestContentLength */
        start local 10 // java.lang.String requestContentLength
        10: .line 336
            iload 9 /* hasTransferEncoding */
            ifeq 13
            aload 6 /* transferEncoding */
            getstatic io.undertow.util.Headers.IDENTITY:Lio/undertow/util/HttpString;
            invokevirtual io.undertow.util.HttpString.equals:(Lio/undertow/util/HttpString;)Z
            ifne 13
        11: .line 337
            aconst_null
            astore 7 /* length */
        start local 7 // java.lang.Long length
        12: .line 338
            goto 27
        end local 7 // java.lang.Long length
      StackMap locals: java.lang.String
      StackMap stack:
        13: aload 10 /* requestContentLength */
            ifnull 24
        14: .line 340
            aload 10 /* requestContentLength */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 11 /* contentLength */
        start local 11 // long contentLength
        15: .line 341
            lload 11 /* contentLength */
            lconst_0
            lcmp
            ifne 20
        16: .line 342
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            ldc "No content, starting next request"
            invokeinterface io.undertow.UndertowLogger.trace:(Ljava/lang/Object;)V
        17: .line 344
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpReadListener.httpServerExchange:Lio/undertow/server/HttpServerExchange;
            invokestatic io.undertow.server.Connectors.terminateRequest:(Lio/undertow/server/HttpServerExchange;)V
        18: .line 345
            new io.undertow.conduits.EmptyStreamSourceConduit
            dup
            aload 4 /* conduit */
            invokevirtual io.undertow.conduits.ReadDataStreamSourceConduit.getReadThread:()Lorg/xnio/XnioIoThread;
            invokespecial io.undertow.conduits.EmptyStreamSourceConduit.<init>:(Lorg/xnio/XnioIoThread;)V
        19: areturn
        20: .line 347
      StackMap locals: long
      StackMap stack:
            lload 11 /* contentLength */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 7 /* length */
        end local 11 // long contentLength
        start local 7 // java.lang.Long length
        21: .line 349
            goto 27
        end local 7 // java.lang.Long length
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.conduits.StreamSourceConduit io.undertow.server.protocol.ajp.AjpServerResponseConduit io.undertow.server.HttpServerExchange io.undertow.conduits.ReadDataStreamSourceConduit io.undertow.util.HeaderMap io.undertow.util.HttpString top java.lang.String int java.lang.String
      StackMap stack: java.lang.NumberFormatException
        22: astore 11 /* e */
        start local 11 // java.lang.NumberFormatException e
        23: .line 350
            new io.undertow.util.BadRequestException
            dup
            ldc "Invalid Content-Length header"
            aload 11 /* e */
            invokespecial io.undertow.util.BadRequestException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.lang.NumberFormatException e
        24: .line 353
      StackMap locals:
      StackMap stack:
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            ldc "No content length or transfer coding, starting next request"
            invokeinterface io.undertow.UndertowLogger.trace:(Ljava/lang/Object;)V
        25: .line 355
            aload 3 /* exchange */
            invokestatic io.undertow.server.Connectors.terminateRequest:(Lio/undertow/server/HttpServerExchange;)V
        26: .line 356
            new io.undertow.conduits.EmptyStreamSourceConduit
            dup
            aload 4 /* conduit */
            invokevirtual io.undertow.conduits.ReadDataStreamSourceConduit.getReadThread:()Lorg/xnio/XnioIoThread;
            invokespecial io.undertow.conduits.EmptyStreamSourceConduit.<init>:(Lorg/xnio/XnioIoThread;)V
            areturn
        start local 7 // java.lang.Long length
        27: .line 358
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener org.xnio.conduits.StreamSourceConduit io.undertow.server.protocol.ajp.AjpServerResponseConduit io.undertow.server.HttpServerExchange io.undertow.conduits.ReadDataStreamSourceConduit io.undertow.util.HeaderMap io.undertow.util.HttpString java.lang.Long java.lang.String int java.lang.String
      StackMap stack:
            new io.undertow.server.protocol.ajp.AjpServerRequestConduit
            dup
            aload 4 /* conduit */
            aload 3 /* exchange */
            aload 2 /* responseConduit */
            aload 7 /* length */
            new io.undertow.server.protocol.ajp.AjpReadListener$3
            dup
            aload 0 /* this */
            aload 3 /* exchange */
            invokespecial io.undertow.server.protocol.ajp.AjpReadListener$3.<init>:(Lio/undertow/server/protocol/ajp/AjpReadListener;Lio/undertow/server/HttpServerExchange;)V
            invokespecial io.undertow.server.protocol.ajp.AjpServerRequestConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/server/HttpServerExchange;Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;Ljava/lang/Long;Lio/undertow/conduits/ConduitListener;)V
            areturn
        end local 10 // java.lang.String requestContentLength
        end local 9 // boolean hasTransferEncoding
        end local 8 // java.lang.String teHeader
        end local 7 // java.lang.Long length
        end local 6 // io.undertow.util.HttpString transferEncoding
        end local 5 // io.undertow.util.HeaderMap requestHeaders
        end local 4 // io.undertow.conduits.ReadDataStreamSourceConduit conduit
        end local 3 // io.undertow.server.HttpServerExchange exchange
        end local 2 // io.undertow.server.protocol.ajp.AjpServerResponseConduit responseConduit
        end local 1 // org.xnio.conduits.StreamSourceConduit underlyingConduit
        end local 0 // io.undertow.server.protocol.ajp.AjpReadListener this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   28     0                  this  Lio/undertow/server/protocol/ajp/AjpReadListener;
            0   28     1     underlyingConduit  Lorg/xnio/conduits/StreamSourceConduit;
            0   28     2       responseConduit  Lio/undertow/server/protocol/ajp/AjpServerResponseConduit;
            0   28     3              exchange  Lio/undertow/server/HttpServerExchange;
            1   28     4               conduit  Lio/undertow/conduits/ReadDataStreamSourceConduit;
            2   28     5        requestHeaders  Lio/undertow/util/HeaderMap;
            3   28     6      transferEncoding  Lio/undertow/util/HttpString;
           12   13     7                length  Ljava/lang/Long;
           21   22     7                length  Ljava/lang/Long;
           27   28     7                length  Ljava/lang/Long;
            4   28     8              teHeader  Ljava/lang/String;
            7   28     9   hasTransferEncoding  Z
           10   28    10  requestContentLength  Ljava/lang/String;
           15   21    11         contentLength  J
           23   24    11                     e  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
          14    19      22  Class java.lang.NumberFormatException
          20    21      22  Class java.lang.NumberFormatException
    Exceptions:
      throws io.undertow.util.BadRequestException
    MethodParameters:
                   Name  Flags
      underlyingConduit  
      responseConduit    
      exchange           final

  public void handleEvent(java.nio.channels.Channel);
    descriptor: (Ljava/nio/channels/Channel;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.xnio.channels.StreamSourceChannel
            invokevirtual io.undertow.server.protocol.ajp.AjpReadListener.handleEvent:(Lorg/xnio/channels/StreamSourceChannel;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lorg/xnio/ChannelListener<Lorg/xnio/channels/StreamSourceChannel;>;
SourceFile: "AjpReadListener.java"
NestMembers:
  io.undertow.server.protocol.ajp.AjpReadListener$1  io.undertow.server.protocol.ajp.AjpReadListener$2  io.undertow.server.protocol.ajp.AjpReadListener$3
InnerClasses:
  public ConduitState = io.undertow.server.AbstractServerConnection$ConduitState of io.undertow.server.AbstractServerConnection
  public abstract CloseListener = io.undertow.server.ServerConnection$CloseListener of io.undertow.server.ServerConnection
  io.undertow.server.protocol.ajp.AjpReadListener$1
  io.undertow.server.protocol.ajp.AjpReadListener$2
  io.undertow.server.protocol.ajp.AjpReadListener$3
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
  public ChannelListenerHandler = org.xnio.conduits.WriteReadyHandler$ChannelListenerHandler of org.xnio.conduits.WriteReadyHandler