public class io.undertow.server.protocol.ajp.AjpOpenListener implements io.undertow.server.OpenListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.undertow.server.protocol.ajp.AjpOpenListener
  super_class: java.lang.Object
{
  private final io.undertow.connector.ByteBufferPool bufferPool;
    descriptor: Lio/undertow/connector/ByteBufferPool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private volatile java.lang.String scheme;
    descriptor: Ljava/lang/String;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile io.undertow.server.HttpHandler rootHandler;
    descriptor: Lio/undertow/server/HttpHandler;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile org.xnio.OptionMap undertowOptions;
    descriptor: Lorg/xnio/OptionMap;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile io.undertow.server.protocol.ajp.AjpRequestParser parser;
    descriptor: Lio/undertow/server/protocol/ajp/AjpRequestParser;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean statisticsEnabled;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private final io.undertow.server.ServerConnection$CloseListener closeListener;
    descriptor: Lio/undertow/server/ServerConnection$CloseListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.xnio.Pool<java.nio.ByteBuffer>);
    descriptor: (Lorg/xnio/Pool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
        start local 1 // org.xnio.Pool pool
         0: .line 77
            aload 0 /* this */
            aload 1 /* pool */
            getstatic org.xnio.OptionMap.EMPTY:Lorg/xnio/OptionMap;
            invokespecial io.undertow.server.protocol.ajp.AjpOpenListener.<init>:(Lorg/xnio/Pool;Lorg/xnio/OptionMap;)V
         1: .line 78
            return
        end local 1 // org.xnio.Pool pool
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/ajp/AjpOpenListener;
            0    2     1  pool  Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;
    Signature: (Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;)V
    MethodParameters:
      Name  Flags
      pool  final

  public void <init>(org.xnio.Pool<java.nio.ByteBuffer>, org.xnio.OptionMap);
    descriptor: (Lorg/xnio/Pool;Lorg/xnio/OptionMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
        start local 1 // org.xnio.Pool pool
        start local 2 // org.xnio.OptionMap undertowOptions
         0: .line 81
            aload 0 /* this */
            new io.undertow.server.XnioByteBufferPool
            dup
            aload 1 /* pool */
            invokespecial io.undertow.server.XnioByteBufferPool.<init>:(Lorg/xnio/Pool;)V
            aload 2 /* undertowOptions */
            invokespecial io.undertow.server.protocol.ajp.AjpOpenListener.<init>:(Lio/undertow/connector/ByteBufferPool;Lorg/xnio/OptionMap;)V
         1: .line 82
            return
        end local 2 // org.xnio.OptionMap undertowOptions
        end local 1 // org.xnio.Pool pool
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lio/undertow/server/protocol/ajp/AjpOpenListener;
            0    2     1             pool  Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;
            0    2     2  undertowOptions  Lorg/xnio/OptionMap;
    Signature: (Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;Lorg/xnio/OptionMap;)V
    MethodParameters:
                 Name  Flags
      pool             final
      undertowOptions  final

  public void <init>(io.undertow.connector.ByteBufferPool);
    descriptor: (Lio/undertow/connector/ByteBufferPool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
        start local 1 // io.undertow.connector.ByteBufferPool pool
         0: .line 85
            aload 0 /* this */
            aload 1 /* pool */
            getstatic org.xnio.OptionMap.EMPTY:Lorg/xnio/OptionMap;
            invokespecial io.undertow.server.protocol.ajp.AjpOpenListener.<init>:(Lio/undertow/connector/ByteBufferPool;Lorg/xnio/OptionMap;)V
         1: .line 86
            return
        end local 1 // io.undertow.connector.ByteBufferPool pool
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/ajp/AjpOpenListener;
            0    2     1  pool  Lio/undertow/connector/ByteBufferPool;
    MethodParameters:
      Name  Flags
      pool  final

  public void <init>(io.undertow.connector.ByteBufferPool, org.xnio.OptionMap);
    descriptor: (Lio/undertow/connector/ByteBufferPool;Lorg/xnio/OptionMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
        start local 1 // io.undertow.connector.ByteBufferPool pool
        start local 2 // org.xnio.OptionMap undertowOptions
         0: .line 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 69
            aload 0 /* this */
            new io.undertow.server.protocol.ajp.AjpOpenListener$1
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.ajp.AjpOpenListener$1.<init>:(Lio/undertow/server/protocol/ajp/AjpOpenListener;)V
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.closeListener:Lio/undertow/server/ServerConnection$CloseListener;
         2: .line 89
            aload 0 /* this */
            aload 2 /* undertowOptions */
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.undertowOptions:Lorg/xnio/OptionMap;
         3: .line 90
            aload 0 /* this */
            aload 1 /* pool */
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.bufferPool:Lio/undertow/connector/ByteBufferPool;
         4: .line 91
            aload 1 /* pool */
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            astore 3 /* buf */
        start local 3 // io.undertow.connector.PooledByteBuffer buf
         5: .line 92
            aload 0 /* this */
            aload 3 /* buf */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.bufferSize:I
         6: .line 93
            aload 3 /* buf */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
         7: .line 94
            aload 0 /* this */
            new io.undertow.server.protocol.ajp.AjpRequestParser
            dup
            aload 2 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.URL_CHARSET:Lorg/xnio/Option;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.DECODE_URL:Lorg/xnio/Option;
            iconst_1
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
            aload 2 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.MAX_PARAMETERS:Lorg/xnio/Option;
            sipush 1000
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            aload 2 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.MAX_HEADERS:Lorg/xnio/Option;
            sipush 200
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            aload 2 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.ALLOW_ENCODED_SLASH:Lorg/xnio/Option;
            iconst_0
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser.<init>:(Ljava/lang/String;ZIIZ)V
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.parser:Lio/undertow/server/protocol/ajp/AjpRequestParser;
         8: .line 95
            aload 0 /* this */
            new io.undertow.server.ConnectorStatisticsImpl
            dup
            invokespecial io.undertow.server.ConnectorStatisticsImpl.<init>:()V
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
         9: .line 96
            aload 0 /* this */
            aload 2 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.ENABLE_CONNECTOR_STATISTICS:Lorg/xnio/Option;
            iconst_0
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.statisticsEnabled:Z
        10: .line 97
            return
        end local 3 // io.undertow.connector.PooledByteBuffer buf
        end local 2 // org.xnio.OptionMap undertowOptions
        end local 1 // io.undertow.connector.ByteBufferPool pool
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lio/undertow/server/protocol/ajp/AjpOpenListener;
            0   11     1             pool  Lio/undertow/connector/ByteBufferPool;
            0   11     2  undertowOptions  Lorg/xnio/OptionMap;
            5   11     3              buf  Lio/undertow/connector/PooledByteBuffer;
    MethodParameters:
                 Name  Flags
      pool             final
      undertowOptions  final

  public void handleEvent(org.xnio.StreamConnection);
    descriptor: (Lorg/xnio/StreamConnection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
        start local 1 // org.xnio.StreamConnection channel
         0: .line 101
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            invokeinterface io.undertow.UndertowLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 102
            getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
            ldc "Opened connection with %s"
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getPeerAddress:()Ljava/net/SocketAddress;
            invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 107
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
            getstatic org.xnio.Options.READ_TIMEOUT:Lorg/xnio/Option;
            invokevirtual org.xnio.StreamConnection.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 2 /* readTimeout */
        start local 2 // java.lang.Integer readTimeout
         3: .line 108
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.undertowOptions:Lorg/xnio/OptionMap;
            getstatic io.undertow.UndertowOptions.IDLE_TIMEOUT:Lorg/xnio/Option;
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 3 /* idle */
        start local 3 // java.lang.Integer idle
         4: .line 109
            aload 3 /* idle */
            ifnull 8
         5: .line 110
            new io.undertow.conduits.IdleTimeoutConduit
            dup
            aload 1 /* channel */
            invokespecial io.undertow.conduits.IdleTimeoutConduit.<init>:(Lorg/xnio/StreamConnection;)V
            astore 4 /* conduit */
        start local 4 // io.undertow.conduits.IdleTimeoutConduit conduit
         6: .line 111
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 4 /* conduit */
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
         7: .line 112
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aload 4 /* conduit */
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
        end local 4 // io.undertow.conduits.IdleTimeoutConduit conduit
         8: .line 114
      StackMap locals: java.lang.Integer java.lang.Integer
      StackMap stack:
            aload 2 /* readTimeout */
            ifnull 10
            aload 2 /* readTimeout */
            invokevirtual java.lang.Integer.intValue:()I
            ifle 10
         9: .line 115
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            new io.undertow.conduits.ReadTimeoutStreamSourceConduit
            dup
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
            aload 1 /* channel */
            aload 0 /* this */
            invokespecial io.undertow.conduits.ReadTimeoutStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;Lorg/xnio/StreamConnection;Lio/undertow/server/OpenListener;)V
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
        10: .line 117
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
            getstatic org.xnio.Options.WRITE_TIMEOUT:Lorg/xnio/Option;
            invokevirtual org.xnio.StreamConnection.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 4 /* writeTimeout */
        start local 4 // java.lang.Integer writeTimeout
        11: .line 118
            aload 4 /* writeTimeout */
            ifnull 17
            aload 4 /* writeTimeout */
            invokevirtual java.lang.Integer.intValue:()I
            ifle 17
        12: .line 119
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            new io.undertow.conduits.WriteTimeoutStreamSinkConduit
            dup
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getConduit:()Lorg/xnio/conduits/StreamSinkConduit;
            aload 1 /* channel */
            aload 0 /* this */
            invokespecial io.undertow.conduits.WriteTimeoutStreamSinkConduit.<init>:(Lorg/xnio/conduits/StreamSinkConduit;Lorg/xnio/StreamConnection;Lio/undertow/server/OpenListener;)V
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
        end local 4 // java.lang.Integer writeTimeout
        end local 3 // java.lang.Integer idle
        end local 2 // java.lang.Integer readTimeout
        13: .line 121
            goto 17
      StackMap locals: io.undertow.server.protocol.ajp.AjpOpenListener org.xnio.StreamConnection
      StackMap stack: java.io.IOException
        14: astore 2 /* e */
        start local 2 // java.io.IOException e
        15: .line 122
            aload 1 /* channel */
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        16: .line 123
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            aload 2 /* e */
            invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
        end local 2 // java.io.IOException e
        17: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.statisticsEnabled:Z
            ifeq 21
        18: .line 126
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            new io.undertow.conduits.BytesSentStreamSinkConduit
            dup
            aload 1 /* channel */
            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.AjpOpenListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
            invokevirtual io.undertow.server.ConnectorStatisticsImpl.sentAccumulator:()Lio/undertow/conduits/ByteActivityCallback;
            invokespecial io.undertow.conduits.BytesSentStreamSinkConduit.<init>:(Lorg/xnio/conduits/StreamSinkConduit;Lio/undertow/conduits/ByteActivityCallback;)V
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
        19: .line 127
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            new io.undertow.conduits.BytesReceivedStreamSourceConduit
            dup
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
            invokevirtual io.undertow.server.ConnectorStatisticsImpl.receivedAccumulator:()Lio/undertow/conduits/ByteActivityCallback;
            invokespecial io.undertow.conduits.BytesReceivedStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;Lio/undertow/conduits/ByteActivityCallback;)V
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
        20: .line 128
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
            invokevirtual io.undertow.server.ConnectorStatisticsImpl.incrementConnectionCount:()V
        21: .line 131
      StackMap locals:
      StackMap stack:
            new io.undertow.server.protocol.ajp.AjpServerConnection
            dup
            aload 1 /* channel */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.bufferPool:Lio/undertow/connector/ByteBufferPool;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.rootHandler:Lio/undertow/server/HttpHandler;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.undertowOptions:Lorg/xnio/OptionMap;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.bufferSize:I
            invokespecial io.undertow.server.protocol.ajp.AjpServerConnection.<init>:(Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/HttpHandler;Lorg/xnio/OptionMap;I)V
            astore 2 /* connection */
        start local 2 // io.undertow.server.protocol.ajp.AjpServerConnection connection
        22: .line 132
            new io.undertow.server.protocol.ajp.AjpReadListener
            dup
            aload 2 /* connection */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.scheme:Ljava/lang/String;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.parser:Lio/undertow/server/protocol/ajp/AjpRequestParser;
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.statisticsEnabled:Z
            ifeq 23
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
            goto 24
      StackMap locals: io.undertow.server.protocol.ajp.AjpOpenListener org.xnio.StreamConnection io.undertow.server.protocol.ajp.AjpServerConnection
      StackMap stack: new 22 new 22 io.undertow.server.protocol.ajp.AjpServerConnection java.lang.String io.undertow.server.protocol.ajp.AjpRequestParser
        23: aconst_null
      StackMap locals: io.undertow.server.protocol.ajp.AjpOpenListener org.xnio.StreamConnection io.undertow.server.protocol.ajp.AjpServerConnection
      StackMap stack: new 22 new 22 io.undertow.server.protocol.ajp.AjpServerConnection java.lang.String io.undertow.server.protocol.ajp.AjpRequestParser io.undertow.server.ConnectorStatisticsImpl
        24: invokespecial io.undertow.server.protocol.ajp.AjpReadListener.<init>:(Lio/undertow/server/protocol/ajp/AjpServerConnection;Ljava/lang/String;Lio/undertow/server/protocol/ajp/AjpRequestParser;Lio/undertow/server/ConnectorStatisticsImpl;)V
            astore 3 /* readListener */
        start local 3 // io.undertow.server.protocol.ajp.AjpReadListener readListener
        25: .line 133
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.statisticsEnabled:Z
            ifeq 27
        26: .line 134
            aload 2 /* connection */
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.closeListener:Lio/undertow/server/ServerConnection$CloseListener;
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.addCloseListener:(Lio/undertow/server/ServerConnection$CloseListener;)V
        27: .line 136
      StackMap locals: io.undertow.server.protocol.ajp.AjpReadListener
      StackMap stack:
            aload 2 /* connection */
            aload 3 /* readListener */
            invokevirtual io.undertow.server.protocol.ajp.AjpServerConnection.setAjpReadListener:(Lio/undertow/server/protocol/ajp/AjpReadListener;)V
        28: .line 137
            aload 3 /* readListener */
            invokevirtual io.undertow.server.protocol.ajp.AjpReadListener.startRequest:()V
        29: .line 138
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 3 /* readListener */
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setReadListener:(Lorg/xnio/ChannelListener;)V
        30: .line 139
            aload 3 /* readListener */
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual io.undertow.server.protocol.ajp.AjpReadListener.handleEvent:(Lorg/xnio/channels/StreamSourceChannel;)V
        31: .line 140
            return
        end local 3 // io.undertow.server.protocol.ajp.AjpReadListener readListener
        end local 2 // io.undertow.server.protocol.ajp.AjpServerConnection connection
        end local 1 // org.xnio.StreamConnection channel
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   32     0          this  Lio/undertow/server/protocol/ajp/AjpOpenListener;
            0   32     1       channel  Lorg/xnio/StreamConnection;
            3   13     2   readTimeout  Ljava/lang/Integer;
            4   13     3          idle  Ljava/lang/Integer;
            6    8     4       conduit  Lio/undertow/conduits/IdleTimeoutConduit;
           11   13     4  writeTimeout  Ljava/lang/Integer;
           15   17     2             e  Ljava/io/IOException;
           22   32     2    connection  Lio/undertow/server/protocol/ajp/AjpServerConnection;
           25   32     3  readListener  Lio/undertow/server/protocol/ajp/AjpReadListener;
      Exception table:
        from    to  target  type
           2    13      14  Class java.io.IOException
    MethodParameters:
         Name  Flags
      channel  final

  public io.undertow.server.HttpHandler getRootHandler();
    descriptor: ()Lio/undertow/server/HttpHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
         0: .line 144
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.rootHandler:Lio/undertow/server/HttpHandler;
            areturn
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/ajp/AjpOpenListener;

  public void setRootHandler(io.undertow.server.HttpHandler);
    descriptor: (Lio/undertow/server/HttpHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
        start local 1 // io.undertow.server.HttpHandler rootHandler
         0: .line 149
            aload 0 /* this */
            aload 1 /* rootHandler */
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.rootHandler:Lio/undertow/server/HttpHandler;
         1: .line 150
            return
        end local 1 // io.undertow.server.HttpHandler rootHandler
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lio/undertow/server/protocol/ajp/AjpOpenListener;
            0    2     1  rootHandler  Lio/undertow/server/HttpHandler;
    MethodParameters:
             Name  Flags
      rootHandler  final

  public org.xnio.OptionMap getUndertowOptions();
    descriptor: ()Lorg/xnio/OptionMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
         0: .line 154
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.undertowOptions:Lorg/xnio/OptionMap;
            areturn
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/ajp/AjpOpenListener;

  public void setUndertowOptions(org.xnio.OptionMap);
    descriptor: (Lorg/xnio/OptionMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
        start local 1 // org.xnio.OptionMap undertowOptions
         0: .line 159
            aload 1 /* undertowOptions */
            ifnonnull 2
         1: .line 160
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            ldc "undertowOptions"
            invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         2: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* undertowOptions */
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.undertowOptions:Lorg/xnio/OptionMap;
         3: .line 163
            aload 0 /* this */
            aload 1 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.ENABLE_CONNECTOR_STATISTICS:Lorg/xnio/Option;
            iconst_0
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.statisticsEnabled:Z
         4: .line 164
            aload 0 /* this */
            new io.undertow.server.protocol.ajp.AjpRequestParser
            dup
            aload 1 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.URL_CHARSET:Lorg/xnio/Option;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            aload 1 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.DECODE_URL:Lorg/xnio/Option;
            iconst_1
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
            aload 1 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.MAX_PARAMETERS:Lorg/xnio/Option;
            sipush 1000
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            aload 1 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.MAX_HEADERS:Lorg/xnio/Option;
            sipush 200
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            aload 1 /* undertowOptions */
            getstatic io.undertow.UndertowOptions.ALLOW_ENCODED_SLASH:Lorg/xnio/Option;
            iconst_0
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
            invokespecial io.undertow.server.protocol.ajp.AjpRequestParser.<init>:(Ljava/lang/String;ZIIZ)V
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.parser:Lio/undertow/server/protocol/ajp/AjpRequestParser;
         5: .line 165
            return
        end local 1 // org.xnio.OptionMap undertowOptions
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lio/undertow/server/protocol/ajp/AjpOpenListener;
            0    6     1  undertowOptions  Lorg/xnio/OptionMap;
    MethodParameters:
                 Name  Flags
      undertowOptions  final

  public io.undertow.connector.ByteBufferPool getBufferPool();
    descriptor: ()Lio/undertow/connector/ByteBufferPool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
         0: .line 169
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.bufferPool:Lio/undertow/connector/ByteBufferPool;
            areturn
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/ajp/AjpOpenListener;

  public io.undertow.server.ConnectorStatistics getConnectorStatistics();
    descriptor: ()Lio/undertow/server/ConnectorStatistics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
         0: .line 174
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.statisticsEnabled:Z
            ifeq 2
         1: .line 175
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.connectorStatistics:Lio/undertow/server/ConnectorStatisticsImpl;
            areturn
         2: .line 177
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/server/protocol/ajp/AjpOpenListener;

  public java.lang.String getScheme();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
         0: .line 181
            aload 0 /* this */
            getfield io.undertow.server.protocol.ajp.AjpOpenListener.scheme:Ljava/lang/String;
            areturn
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/ajp/AjpOpenListener;

  public void setScheme(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
        start local 1 // java.lang.String scheme
         0: .line 185
            aload 0 /* this */
            aload 1 /* scheme */
            putfield io.undertow.server.protocol.ajp.AjpOpenListener.scheme:Ljava/lang/String;
         1: .line 186
            return
        end local 1 // java.lang.String scheme
        end local 0 // io.undertow.server.protocol.ajp.AjpOpenListener this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/undertow/server/protocol/ajp/AjpOpenListener;
            0    2     1  scheme  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      scheme  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.StreamConnection
            invokevirtual io.undertow.server.protocol.ajp.AjpOpenListener.handleEvent:(Lorg/xnio/StreamConnection;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "AjpOpenListener.java"
NestMembers:
  io.undertow.server.protocol.ajp.AjpOpenListener$1
InnerClasses:
  public abstract CloseListener = io.undertow.server.ServerConnection$CloseListener of io.undertow.server.ServerConnection
  io.undertow.server.protocol.ajp.AjpOpenListener$1