public class io.undertow.server.ConnectionSSLSessionInfo implements io.undertow.server.SSLSessionInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.undertow.server.ConnectionSSLSessionInfo
  super_class: java.lang.Object
{
  private static final javax.net.ssl.SSLPeerUnverifiedException PEER_UNVERIFIED_EXCEPTION;
    descriptor: Ljavax/net/ssl/SSLPeerUnverifiedException;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final io.undertow.server.RenegotiationRequiredException RENEGOTIATION_REQUIRED_EXCEPTION;
    descriptor: Lio/undertow/server/RenegotiationRequiredException;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long MAX_RENEGOTIATION_WAIT;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 30000

  private final org.xnio.channels.SslChannel channel;
    descriptor: Lorg/xnio/channels/SslChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.undertow.server.protocol.http.HttpServerConnection serverConnection;
    descriptor: Lio/undertow/server/protocol/http/HttpServerConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private javax.net.ssl.SSLPeerUnverifiedException unverified;
    descriptor: Ljavax/net/ssl/SSLPeerUnverifiedException;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 50
            new javax.net.ssl.SSLPeerUnverifiedException
            dup
            ldc ""
            invokespecial javax.net.ssl.SSLPeerUnverifiedException.<init>:(Ljava/lang/String;)V
            putstatic io.undertow.server.ConnectionSSLSessionInfo.PEER_UNVERIFIED_EXCEPTION:Ljavax/net/ssl/SSLPeerUnverifiedException;
         1: .line 51
            new io.undertow.server.RenegotiationRequiredException
            dup
            invokespecial io.undertow.server.RenegotiationRequiredException.<init>:()V
            putstatic io.undertow.server.ConnectionSSLSessionInfo.RENEGOTIATION_REQUIRED_EXCEPTION:Lio/undertow/server/RenegotiationRequiredException;
         2: .line 53
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.xnio.channels.SslChannel, io.undertow.server.protocol.http.HttpServerConnection);
    descriptor: (Lorg/xnio/channels/SslChannel;Lio/undertow/server/protocol/http/HttpServerConnection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
        start local 1 // org.xnio.channels.SslChannel channel
        start local 2 // io.undertow.server.protocol.http.HttpServerConnection serverConnection
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 61
            aload 0 /* this */
            aload 1 /* channel */
            putfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
         2: .line 62
            aload 0 /* this */
            aload 2 /* serverConnection */
            putfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
         3: .line 63
            return
        end local 2 // io.undertow.server.protocol.http.HttpServerConnection serverConnection
        end local 1 // org.xnio.channels.SslChannel channel
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lio/undertow/server/ConnectionSSLSessionInfo;
            0    4     1           channel  Lorg/xnio/channels/SslChannel;
            0    4     2  serverConnection  Lio/undertow/server/protocol/http/HttpServerConnection;
    MethodParameters:
                  Name  Flags
      channel           
      serverConnection  

  public byte[] getSessionId();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
         0: .line 67
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.getSslSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getId:()[B
            areturn
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/ConnectionSSLSessionInfo;

  public java.lang.String getCipherSuite();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
         0: .line 72
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.getSslSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
            areturn
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/ConnectionSSLSessionInfo;

  public java.security.cert.Certificate[] getPeerCertificates();
    descriptor: ()[Ljava/security/cert/Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
         0: .line 77
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
            ifnull 2
         1: .line 78
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
            athrow
         2: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
            ifnull 4
         3: .line 81
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
            athrow
         4: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.getSslSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getPeerCertificates:()[Ljava/security/cert/Certificate;
         5: areturn
         6: .line 85
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
            pop
         7: .line 87
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            getstatic org.xnio.Options.SSL_CLIENT_AUTH_MODE:Lorg/xnio/Option;
            invokeinterface org.xnio.channels.SslChannel.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast org.xnio.SslClientAuthMode
            astore 1 /* sslClientAuthMode */
        start local 1 // org.xnio.SslClientAuthMode sslClientAuthMode
         8: .line 88
            aload 1 /* sslClientAuthMode */
            getstatic org.xnio.SslClientAuthMode.NOT_REQUESTED:Lorg/xnio/SslClientAuthMode;
            if_acmpne 12
         9: .line 89
            aload 0 /* this */
            getstatic io.undertow.server.ConnectionSSLSessionInfo.RENEGOTIATION_REQUIRED_EXCEPTION:Lio/undertow/server/RenegotiationRequiredException;
            putfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
        10: .line 90
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
            athrow
        end local 1 // org.xnio.SslClientAuthMode sslClientAuthMode
        11: .line 92
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        12: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic io.undertow.server.ConnectionSSLSessionInfo.PEER_UNVERIFIED_EXCEPTION:Ljavax/net/ssl/SSLPeerUnverifiedException;
            putfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
        13: .line 96
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
            athrow
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Lio/undertow/server/ConnectionSSLSessionInfo;
            8   11     1  sslClientAuthMode  Lorg/xnio/SslClientAuthMode;
      Exception table:
        from    to  target  type
           4     5       6  Class javax.net.ssl.SSLPeerUnverifiedException
           7    11      11  Class java.io.IOException
    Exceptions:
      throws javax.net.ssl.SSLPeerUnverifiedException, io.undertow.server.RenegotiationRequiredException

  public javax.security.cert.X509Certificate[] getPeerCertificateChain();
    descriptor: ()[Ljavax/security/cert/X509Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
         0: .line 102
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
            ifnull 2
         1: .line 103
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
            athrow
         2: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
            ifnull 4
         3: .line 106
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
            athrow
         4: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.getSslSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getPeerCertificateChain:()[Ljavax/security/cert/X509Certificate;
         5: areturn
         6: .line 110
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
            pop
         7: .line 112
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            getstatic org.xnio.Options.SSL_CLIENT_AUTH_MODE:Lorg/xnio/Option;
            invokeinterface org.xnio.channels.SslChannel.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast org.xnio.SslClientAuthMode
            astore 1 /* sslClientAuthMode */
        start local 1 // org.xnio.SslClientAuthMode sslClientAuthMode
         8: .line 113
            aload 1 /* sslClientAuthMode */
            getstatic org.xnio.SslClientAuthMode.NOT_REQUESTED:Lorg/xnio/SslClientAuthMode;
            if_acmpne 12
         9: .line 114
            aload 0 /* this */
            getstatic io.undertow.server.ConnectionSSLSessionInfo.RENEGOTIATION_REQUIRED_EXCEPTION:Lio/undertow/server/RenegotiationRequiredException;
            putfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
        10: .line 115
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
            athrow
        end local 1 // org.xnio.SslClientAuthMode sslClientAuthMode
        11: .line 117
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        12: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic io.undertow.server.ConnectionSSLSessionInfo.PEER_UNVERIFIED_EXCEPTION:Ljavax/net/ssl/SSLPeerUnverifiedException;
            putfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
        13: .line 121
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
            athrow
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Lio/undertow/server/ConnectionSSLSessionInfo;
            8   11     1  sslClientAuthMode  Lorg/xnio/SslClientAuthMode;
      Exception table:
        from    to  target  type
           4     5       6  Class javax.net.ssl.SSLPeerUnverifiedException
           7    11      11  Class java.io.IOException
    Exceptions:
      throws javax.net.ssl.SSLPeerUnverifiedException, io.undertow.server.RenegotiationRequiredException

  public void renegotiate(io.undertow.server.HttpServerExchange, org.xnio.SslClientAuthMode);
    descriptor: (Lio/undertow/server/HttpServerExchange;Lorg/xnio/SslClientAuthMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
        start local 1 // io.undertow.server.HttpServerExchange exchange
        start local 2 // org.xnio.SslClientAuthMode sslClientAuthMode
         0: .line 128
            ldc "TLSv1.3"
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.getSslSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 131
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.renegotiationNotSupported:()Ljava/io/IOException;
            athrow
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.ConnectionSSLSessionInfo.unverified:Ljavax/net/ssl/SSLPeerUnverifiedException;
         3: .line 134
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.ConnectionSSLSessionInfo.renegotiationRequiredException:Lio/undertow/server/RenegotiationRequiredException;
         4: .line 135
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.isRequestComplete:()Z
            ifeq 7
         5: .line 136
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* sslClientAuthMode */
            invokevirtual io.undertow.server.ConnectionSSLSessionInfo.renegotiateNoRequest:(Lio/undertow/server/HttpServerExchange;Lorg/xnio/SslClientAuthMode;)V
         6: .line 137
            goto 8
         7: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* sslClientAuthMode */
            invokevirtual io.undertow.server.ConnectionSSLSessionInfo.renegotiateBufferRequest:(Lio/undertow/server/HttpServerExchange;Lorg/xnio/SslClientAuthMode;)V
         8: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.xnio.SslClientAuthMode sslClientAuthMode
        end local 1 // io.undertow.server.HttpServerExchange exchange
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Lio/undertow/server/ConnectionSSLSessionInfo;
            0    9     1           exchange  Lio/undertow/server/HttpServerExchange;
            0    9     2  sslClientAuthMode  Lorg/xnio/SslClientAuthMode;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      exchange           
      sslClientAuthMode  

  public javax.net.ssl.SSLSession getSSLSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
         0: .line 144
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.getSslSession:()Ljavax/net/ssl/SSLSession;
            areturn
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/ConnectionSSLSessionInfo;

  public void renegotiateBufferRequest(io.undertow.server.HttpServerExchange, org.xnio.SslClientAuthMode);
    descriptor: (Lio/undertow/server/HttpServerExchange;Lorg/xnio/SslClientAuthMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=20, args_size=3
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
        start local 1 // io.undertow.server.HttpServerExchange exchange
        start local 2 // org.xnio.SslClientAuthMode newAuthMode
         0: .line 148
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokevirtual io.undertow.server.ServerConnection.getUndertowOptions:()Lorg/xnio/OptionMap;
            getstatic io.undertow.UndertowOptions.MAX_BUFFERED_REQUEST_SIZE:Lorg/xnio/Option;
            sipush 16384
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            istore 3 /* maxSize */
        start local 3 // int maxSize
         1: .line 149
            iload 3 /* maxSize */
            ifgt 3
         2: .line 150
            new javax.net.ssl.SSLPeerUnverifiedException
            dup
            ldc ""
            invokespecial javax.net.ssl.SSLPeerUnverifiedException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 154
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* requestResetRequired */
        start local 4 // boolean requestResetRequired
         4: .line 155
            aload 1 /* exchange */
            invokestatic io.undertow.server.Connectors.getExistingRequestChannel:(Lio/undertow/server/HttpServerExchange;)Lorg/xnio/channels/StreamSourceChannel;
            astore 5 /* requestChannel */
        start local 5 // org.xnio.channels.StreamSourceChannel requestChannel
         5: .line 156
            aload 5 /* requestChannel */
            ifnonnull 8
         6: .line 157
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getRequestChannel:()Lorg/xnio/channels/StreamSourceChannel;
            astore 5 /* requestChannel */
         7: .line 158
            iconst_1
            istore 4 /* requestResetRequired */
         8: .line 161
      StackMap locals: int org.xnio.channels.StreamSourceChannel
      StackMap stack:
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokevirtual io.undertow.server.ServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            astore 6 /* pooled */
        start local 6 // io.undertow.connector.PooledByteBuffer pooled
         9: .line 162
            iconst_1
            istore 7 /* free */
        start local 7 // boolean free
        10: .line 163
            iconst_0
            istore 8 /* usedBuffers */
        start local 8 // int usedBuffers
        11: .line 164
            aconst_null
            astore 9 /* poolArray */
        start local 9 // io.undertow.connector.PooledByteBuffer[] poolArray
        12: .line 165
            aload 6 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 10 /* bufferSize */
        start local 10 // int bufferSize
        13: .line 166
            iload 3 /* maxSize */
            iload 10 /* bufferSize */
            iadd
            iconst_1
            isub
            iload 10 /* bufferSize */
            idiv
            istore 11 /* allowedBuffers */
        start local 11 // int allowedBuffers
        14: .line 167
            iload 11 /* allowedBuffers */
            anewarray io.undertow.connector.PooledByteBuffer
            astore 9 /* poolArray */
        15: .line 168
            aload 9 /* poolArray */
            iload 8 /* usedBuffers */
            iinc 8 /* usedBuffers */ 1
            aload 6 /* pooled */
            aastore
        16: .line 169
            iconst_0
            istore 12 /* overflow */
        start local 12 // boolean overflow
        17: .line 173
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode int int org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer int int io.undertow.connector.PooledByteBuffer[] int int int
      StackMap stack:
            aload 6 /* pooled */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            astore 14 /* buf */
        start local 14 // java.nio.ByteBuffer buf
        18: .line 174
            aload 5 /* requestChannel */
            aload 14 /* buf */
            invokestatic org.xnio.channels.Channels.readBlocking:(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;)I
            istore 13 /* res */
        start local 13 // int res
        19: .line 175
            aload 14 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 27
        20: .line 176
            aload 14 /* buf */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        21: .line 177
            iload 11 /* allowedBuffers */
            iload 8 /* usedBuffers */
            if_icmpne 24
        22: .line 178
            iconst_1
            istore 12 /* overflow */
        23: .line 179
            goto 29
        24: .line 181
      StackMap locals: int java.nio.ByteBuffer
      StackMap stack:
            aload 1 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokevirtual io.undertow.server.ServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            astore 6 /* pooled */
        25: .line 182
            aload 9 /* poolArray */
            iload 8 /* usedBuffers */
            iinc 8 /* usedBuffers */ 1
            aload 6 /* pooled */
            aastore
        26: .line 184
            goto 17
      StackMap locals:
      StackMap stack:
        27: iload 13 /* res */
            iconst_m1
            if_icmpne 17
        28: .line 185
            aload 14 /* buf */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        end local 14 // java.nio.ByteBuffer buf
        29: .line 189
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* free */
        30: .line 190
            aload 1 /* exchange */
            aload 9 /* poolArray */
            invokestatic io.undertow.server.Connectors.ungetRequestBytes:(Lio/undertow/server/HttpServerExchange;[Lio/undertow/connector/PooledByteBuffer;)V
        31: .line 191
            iload 12 /* overflow */
            ifeq 33
        32: .line 192
            new javax.net.ssl.SSLPeerUnverifiedException
            dup
            ldc "Cannot renegotiate"
            invokespecial javax.net.ssl.SSLPeerUnverifiedException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* exchange */
            aload 2 /* newAuthMode */
            invokevirtual io.undertow.server.ConnectionSSLSessionInfo.renegotiateNoRequest:(Lio/undertow/server/HttpServerExchange;Lorg/xnio/SslClientAuthMode;)V
        end local 13 // int res
        34: .line 195
            goto 46
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode int int org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer int int io.undertow.connector.PooledByteBuffer[] int int int
      StackMap stack: java.lang.Throwable
        35: astore 15
        36: .line 196
            iload 7 /* free */
            ifeq 43
        37: .line 197
            aload 9 /* poolArray */
            dup
            astore 19
            arraylength
            istore 18
            iconst_0
            istore 17
            goto 42
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode int int org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer int int io.undertow.connector.PooledByteBuffer[] int int int top top java.lang.Throwable top int int io.undertow.connector.PooledByteBuffer[]
      StackMap stack:
        38: aload 19
            iload 17
            aaload
            astore 16 /* buf */
        start local 16 // io.undertow.connector.PooledByteBuffer buf
        39: .line 198
            aload 16 /* buf */
            ifnull 41
        40: .line 199
            aload 16 /* buf */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        end local 16 // io.undertow.connector.PooledByteBuffer buf
        41: .line 197
      StackMap locals:
      StackMap stack:
            iinc 17 1
      StackMap locals:
      StackMap stack:
        42: iload 17
            iload 18
            if_icmplt 38
        43: .line 203
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode int int org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer int int io.undertow.connector.PooledByteBuffer[] int int int top top java.lang.Throwable
      StackMap stack:
            iload 4 /* requestResetRequired */
            ifeq 45
        44: .line 204
            aload 1 /* exchange */
            aconst_null
            putfield io.undertow.server.HttpServerExchange.requestChannel:Lio/undertow/server/HttpServerExchange$ReadDispatchChannel;
        45: .line 206
      StackMap locals:
      StackMap stack:
            aload 15
            athrow
        46: .line 196
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode int int org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer int int io.undertow.connector.PooledByteBuffer[] int int int
      StackMap stack:
            iload 7 /* free */
            ifeq 53
        47: .line 197
            aload 9 /* poolArray */
            dup
            astore 19
            arraylength
            istore 18
            iconst_0
            istore 17
            goto 52
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode int int org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer int int io.undertow.connector.PooledByteBuffer[] int int int top top top top int int io.undertow.connector.PooledByteBuffer[]
      StackMap stack:
        48: aload 19
            iload 17
            aaload
            astore 16 /* buf */
        start local 16 // io.undertow.connector.PooledByteBuffer buf
        49: .line 198
            aload 16 /* buf */
            ifnull 51
        50: .line 199
            aload 16 /* buf */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        end local 16 // io.undertow.connector.PooledByteBuffer buf
        51: .line 197
      StackMap locals:
      StackMap stack:
            iinc 17 1
      StackMap locals:
      StackMap stack:
        52: iload 17
            iload 18
            if_icmplt 48
        53: .line 203
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode int int org.xnio.channels.StreamSourceChannel io.undertow.connector.PooledByteBuffer int int io.undertow.connector.PooledByteBuffer[] int int int
      StackMap stack:
            iload 4 /* requestResetRequired */
            ifeq 55
        54: .line 204
            aload 1 /* exchange */
            aconst_null
            putfield io.undertow.server.HttpServerExchange.requestChannel:Lio/undertow/server/HttpServerExchange$ReadDispatchChannel;
        55: .line 207
      StackMap locals:
      StackMap stack:
            return
        end local 12 // boolean overflow
        end local 11 // int allowedBuffers
        end local 10 // int bufferSize
        end local 9 // io.undertow.connector.PooledByteBuffer[] poolArray
        end local 8 // int usedBuffers
        end local 7 // boolean free
        end local 6 // io.undertow.connector.PooledByteBuffer pooled
        end local 5 // org.xnio.channels.StreamSourceChannel requestChannel
        end local 4 // boolean requestResetRequired
        end local 3 // int maxSize
        end local 2 // org.xnio.SslClientAuthMode newAuthMode
        end local 1 // io.undertow.server.HttpServerExchange exchange
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   56     0                  this  Lio/undertow/server/ConnectionSSLSessionInfo;
            0   56     1              exchange  Lio/undertow/server/HttpServerExchange;
            0   56     2           newAuthMode  Lorg/xnio/SslClientAuthMode;
            1   56     3               maxSize  I
            4   56     4  requestResetRequired  Z
            5   56     5        requestChannel  Lorg/xnio/channels/StreamSourceChannel;
            9   56     6                pooled  Lio/undertow/connector/PooledByteBuffer;
           10   56     7                  free  Z
           11   56     8           usedBuffers  I
           12   56     9             poolArray  [Lio/undertow/connector/PooledByteBuffer;
           13   56    10            bufferSize  I
           14   56    11        allowedBuffers  I
           17   56    12              overflow  Z
           19   34    13                   res  I
           18   29    14                   buf  Ljava/nio/ByteBuffer;
           39   41    16                   buf  Lio/undertow/connector/PooledByteBuffer;
           49   51    16                   buf  Lio/undertow/connector/PooledByteBuffer;
      Exception table:
        from    to  target  type
          17    35      35  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      exchange     
      newAuthMode  

  public void renegotiateNoRequest(io.undertow.server.HttpServerExchange, org.xnio.SslClientAuthMode);
    descriptor: (Lio/undertow/server/HttpServerExchange;Lorg/xnio/SslClientAuthMode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // io.undertow.server.ConnectionSSLSessionInfo this
        start local 1 // io.undertow.server.HttpServerExchange exchange
        start local 2 // org.xnio.SslClientAuthMode newAuthMode
         0: .line 210
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            invokevirtual io.undertow.server.protocol.http.HttpServerConnection.resetChannel:()Lio/undertow/server/AbstractServerConnection$ConduitState;
            astore 3 /* oldState */
        start local 3 // io.undertow.server.AbstractServerConnection$ConduitState oldState
         1: .line 212
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            getstatic org.xnio.Options.SSL_CLIENT_AUTH_MODE:Lorg/xnio/Option;
            invokeinterface org.xnio.channels.SslChannel.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            checkcast org.xnio.SslClientAuthMode
            astore 4 /* sslClientAuthMode */
        start local 4 // org.xnio.SslClientAuthMode sslClientAuthMode
         2: .line 213
            aload 4 /* sslClientAuthMode */
            getstatic org.xnio.SslClientAuthMode.NOT_REQUESTED:Lorg/xnio/SslClientAuthMode;
            if_acmpne 28
         3: .line 214
            new io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter
            dup
            invokespecial io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter.<init>:()V
            astore 5 /* waiter */
        start local 5 // io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter waiter
         4: .line 215
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.getHandshakeSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 5 /* waiter */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         5: .line 217
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            getstatic org.xnio.Options.SSL_CLIENT_AUTH_MODE:Lorg/xnio/Option;
            aload 2 /* newAuthMode */
            invokeinterface org.xnio.channels.SslChannel.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 218
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.getSslSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.invalidate:()V
         7: .line 219
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.channel:Lorg/xnio/channels/SslChannel;
            invokeinterface org.xnio.channels.SslChannel.startHandshake:()V
         8: .line 220
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getOriginalSinkConduit:()Lorg/xnio/conduits/StreamSinkConduit;
            invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
            pop
         9: .line 221
            iconst_1
            newarray 8
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 6 /* buff */
        start local 6 // java.nio.ByteBuffer buff
        10: .line 222
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 30000
            ladd
            lstore 7 /* end */
        start local 7 // long end
        11: .line 223
            goto 17
        12: .line 224
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode io.undertow.server.AbstractServerConnection$ConduitState org.xnio.SslClientAuthMode io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter java.nio.ByteBuffer long
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 6 /* buff */
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 9 /* read */
        start local 9 // int read
        13: .line 225
            iload 9 /* read */
            ifeq 15
        14: .line 226
            new javax.net.ssl.SSLPeerUnverifiedException
            dup
            ldc ""
            invokespecial javax.net.ssl.SSLPeerUnverifiedException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 228
      StackMap locals: int
      StackMap stack:
            aload 5 /* waiter */
            invokevirtual io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter.isDone:()Z
            ifne 17
        16: .line 229
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            invokevirtual io.undertow.server.protocol.http.HttpServerConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            lload 7 /* end */
            invokestatic java.lang.System.currentTimeMillis:()J
            lsub
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
        end local 9 // int read
        17: .line 223
      StackMap locals:
      StackMap stack:
            aload 5 /* waiter */
            invokevirtual io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter.isDone:()Z
            ifne 18
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            invokevirtual io.undertow.server.protocol.http.HttpServerConnection.isOpen:()Z
            ifeq 18
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 7 /* end */
            lcmp
            iflt 12
        18: .line 232
      StackMap locals:
      StackMap stack:
            aload 5 /* waiter */
            invokevirtual io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter.isDone:()Z
            ifne 28
        19: .line 233
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            invokevirtual io.undertow.server.protocol.http.HttpServerConnection.isOpen:()Z
            ifeq 22
        20: .line 234
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        21: .line 235
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.rengotiationTimedOut:()Ljava/lang/IllegalStateException;
            athrow
        22: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        23: .line 238
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.rengotiationFailed:()Ljava/lang/IllegalStateException;
            athrow
        end local 7 // long end
        end local 6 // java.nio.ByteBuffer buff
        end local 5 // io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter waiter
        end local 4 // org.xnio.SslClientAuthMode sslClientAuthMode
        24: .line 242
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode io.undertow.server.AbstractServerConnection$ConduitState
      StackMap stack: java.lang.Throwable
            astore 10
        25: .line 243
            aload 3 /* oldState */
            ifnull 27
        26: .line 244
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            aload 3 /* oldState */
            invokevirtual io.undertow.server.protocol.http.HttpServerConnection.restoreChannel:(Lio/undertow/server/AbstractServerConnection$ConduitState;)V
        27: .line 246
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode io.undertow.server.AbstractServerConnection$ConduitState top top top top top top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        28: .line 243
      StackMap locals: io.undertow.server.ConnectionSSLSessionInfo io.undertow.server.HttpServerExchange org.xnio.SslClientAuthMode io.undertow.server.AbstractServerConnection$ConduitState
      StackMap stack:
            aload 3 /* oldState */
            ifnull 30
        29: .line 244
            aload 0 /* this */
            getfield io.undertow.server.ConnectionSSLSessionInfo.serverConnection:Lio/undertow/server/protocol/http/HttpServerConnection;
            aload 3 /* oldState */
            invokevirtual io.undertow.server.protocol.http.HttpServerConnection.restoreChannel:(Lio/undertow/server/AbstractServerConnection$ConduitState;)V
        30: .line 247
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.undertow.server.AbstractServerConnection$ConduitState oldState
        end local 2 // org.xnio.SslClientAuthMode newAuthMode
        end local 1 // io.undertow.server.HttpServerExchange exchange
        end local 0 // io.undertow.server.ConnectionSSLSessionInfo this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   31     0               this  Lio/undertow/server/ConnectionSSLSessionInfo;
            0   31     1           exchange  Lio/undertow/server/HttpServerExchange;
            0   31     2        newAuthMode  Lorg/xnio/SslClientAuthMode;
            1   31     3           oldState  Lio/undertow/server/AbstractServerConnection$ConduitState;
            2   24     4  sslClientAuthMode  Lorg/xnio/SslClientAuthMode;
            4   24     5             waiter  Lio/undertow/server/ConnectionSSLSessionInfo$SslHandshakeWaiter;
           10   24     6               buff  Ljava/nio/ByteBuffer;
           11   24     7                end  J
           13   17     9               read  I
      Exception table:
        from    to  target  type
           1    24      24  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      exchange     
      newAuthMode  
}
SourceFile: "ConnectionSSLSessionInfo.java"
NestMembers:
  io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter
InnerClasses:
  public ConduitState = io.undertow.server.AbstractServerConnection$ConduitState of io.undertow.server.AbstractServerConnection
  private SslHandshakeWaiter = io.undertow.server.ConnectionSSLSessionInfo$SslHandshakeWaiter of io.undertow.server.ConnectionSSLSessionInfo
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener