class org.xnio.ssl.JsseXnioSsl$4 implements org.xnio.ChannelListener<org.xnio.StreamConnection>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.xnio.ssl.JsseXnioSsl$4
  super_class: java.lang.Object
{
  final org.xnio.ssl.JsseXnioSsl this$0;
    descriptor: Lorg/xnio/ssl/JsseXnioSsl;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private final org.xnio.OptionMap val$optionMap;
    descriptor: Lorg/xnio/OptionMap;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final java.net.InetSocketAddress val$destination;
    descriptor: Ljava/net/InetSocketAddress;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final org.xnio.FutureResult val$futureResult;
    descriptor: Lorg/xnio/FutureResult;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final org.xnio.ChannelListener val$openListener;
    descriptor: Lorg/xnio/ChannelListener;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  void <init>(org.xnio.ssl.JsseXnioSsl, org.xnio.OptionMap, java.net.InetSocketAddress, org.xnio.FutureResult, org.xnio.ChannelListener);
    descriptor: (Lorg/xnio/ssl/JsseXnioSsl;Lorg/xnio/OptionMap;Ljava/net/InetSocketAddress;Lorg/xnio/FutureResult;Lorg/xnio/ChannelListener;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.xnio.ssl.JsseXnioSsl$4 this
         0: .line 158
            aload 0 /* this */
            aload 1
            putfield org.xnio.ssl.JsseXnioSsl$4.this$0:Lorg/xnio/ssl/JsseXnioSsl;
            aload 0 /* this */
            aload 2
            putfield org.xnio.ssl.JsseXnioSsl$4.val$optionMap:Lorg/xnio/OptionMap;
            aload 0 /* this */
            aload 3
            putfield org.xnio.ssl.JsseXnioSsl$4.val$destination:Ljava/net/InetSocketAddress;
            aload 0 /* this */
            aload 4
            putfield org.xnio.ssl.JsseXnioSsl$4.val$futureResult:Lorg/xnio/FutureResult;
            aload 0 /* this */
            aload 5
            putfield org.xnio.ssl.JsseXnioSsl$4.val$openListener:Lorg/xnio/ChannelListener;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.xnio.ssl.JsseXnioSsl$4 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseXnioSsl$4;
    MethodParameters:
                  Name  Flags
      this$0            final
      val$optionMap     final
      val$destination   final
      val$futureResult  final
      val$openListener  final

  public void handleEvent(org.xnio.StreamConnection);
    descriptor: (Lorg/xnio/StreamConnection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // org.xnio.ssl.JsseXnioSsl$4 this
        start local 1 // org.xnio.StreamConnection connection
         0: .line 160
            aload 0 /* this */
            getfield org.xnio.ssl.JsseXnioSsl$4.this$0:Lorg/xnio/ssl/JsseXnioSsl;
            getfield org.xnio.ssl.JsseXnioSsl.sslContext:Ljavax/net/ssl/SSLContext;
            aload 0 /* this */
            getfield org.xnio.ssl.JsseXnioSsl$4.val$optionMap:Lorg/xnio/OptionMap;
            aload 0 /* this */
            getfield org.xnio.ssl.JsseXnioSsl$4.val$destination:Ljava/net/InetSocketAddress;
            invokestatic org.xnio.ssl.JsseSslUtils.createSSLEngine:(Ljavax/net/ssl/SSLContext;Lorg/xnio/OptionMap;Ljava/net/InetSocketAddress;)Ljavax/net/ssl/SSLEngine;
            astore 2 /* sslEngine */
        start local 2 // javax.net.ssl.SSLEngine sslEngine
         1: .line 161
            aload 0 /* this */
            getfield org.xnio.ssl.JsseXnioSsl$4.val$optionMap:Lorg/xnio/OptionMap;
            getstatic org.xnio.Options.SSL_STARTTLS:Lorg/xnio/Option;
            iconst_0
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;Z)Z
            istore 3 /* startTls */
        start local 3 // boolean startTls
         2: .line 164
            getstatic org.xnio.ssl.JsseXnioSsl.NEW_IMPL:Z
            ifeq 3
            new org.xnio.ssl.JsseSslConnection
            dup
            aload 1 /* connection */
            aload 2 /* sslEngine */
            getstatic org.xnio.ssl.JsseXnioSsl.bufferPool:Lorg/xnio/Pool;
            getstatic org.xnio.ssl.JsseXnioSsl.bufferPool:Lorg/xnio/Pool;
            invokespecial org.xnio.ssl.JsseSslConnection.<init>:(Lorg/xnio/StreamConnection;Ljavax/net/ssl/SSLEngine;Lorg/xnio/Pool;Lorg/xnio/Pool;)V
            goto 4
      StackMap locals: javax.net.ssl.SSLEngine int
      StackMap stack:
         3: new org.xnio.ssl.JsseSslStreamConnection
            dup
            aload 1 /* connection */
            aload 2 /* sslEngine */
            getstatic org.xnio.ssl.JsseXnioSsl.bufferPool:Lorg/xnio/Pool;
            getstatic org.xnio.ssl.JsseXnioSsl.bufferPool:Lorg/xnio/Pool;
            iload 3 /* startTls */
            invokespecial org.xnio.ssl.JsseSslStreamConnection.<init>:(Lorg/xnio/StreamConnection;Ljavax/net/ssl/SSLEngine;Lorg/xnio/Pool;Lorg/xnio/Pool;Z)V
      StackMap locals:
      StackMap stack: org.xnio.ssl.SslConnection
         4: astore 4 /* wrappedConnection */
        start local 4 // org.xnio.ssl.SslConnection wrappedConnection
         5: .line 165
            goto 9
        end local 4 // org.xnio.ssl.SslConnection wrappedConnection
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         6: astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
         7: .line 166
            aload 0 /* this */
            getfield org.xnio.ssl.JsseXnioSsl$4.val$futureResult:Lorg/xnio/FutureResult;
            invokevirtual org.xnio.FutureResult.setCancelled:()Z
            pop
         8: .line 167
            aload 5 /* e */
            athrow
        end local 5 // java.lang.RuntimeException e
        start local 4 // org.xnio.ssl.SslConnection wrappedConnection
         9: .line 169
      StackMap locals: org.xnio.ssl.SslConnection
      StackMap stack:
            getstatic org.xnio.ssl.JsseXnioSsl.NEW_IMPL:Z
            ifeq 15
            iload 3 /* startTls */
            ifne 15
        10: .line 171
            aload 4 /* wrappedConnection */
            invokevirtual org.xnio.ssl.SslConnection.startHandshake:()V
        11: .line 172
            goto 15
      StackMap locals:
      StackMap stack: java.io.IOException
        12: astore 5 /* e */
        start local 5 // java.io.IOException e
        13: .line 173
            aload 0 /* this */
            getfield org.xnio.ssl.JsseXnioSsl$4.val$futureResult:Lorg/xnio/FutureResult;
            aload 5 /* e */
            invokevirtual org.xnio.FutureResult.setException:(Ljava/io/IOException;)Z
            ifeq 15
        14: .line 174
            aload 1 /* connection */
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        end local 5 // java.io.IOException e
        15: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseXnioSsl$4.val$futureResult:Lorg/xnio/FutureResult;
            aload 4 /* wrappedConnection */
            invokevirtual org.xnio.FutureResult.setResult:(Ljava/lang/Object;)Z
            ifne 18
        16: .line 179
            aload 1 /* connection */
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        17: .line 180
            goto 19
        18: .line 181
      StackMap locals:
      StackMap stack:
            aload 4 /* wrappedConnection */
            aload 0 /* this */
            getfield org.xnio.ssl.JsseXnioSsl$4.val$openListener:Lorg/xnio/ChannelListener;
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        19: .line 183
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.xnio.ssl.SslConnection wrappedConnection
        end local 3 // boolean startTls
        end local 2 // javax.net.ssl.SSLEngine sslEngine
        end local 1 // org.xnio.StreamConnection connection
        end local 0 // org.xnio.ssl.JsseXnioSsl$4 this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   20     0               this  Lorg/xnio/ssl/JsseXnioSsl$4;
            0   20     1         connection  Lorg/xnio/StreamConnection;
            1   20     2          sslEngine  Ljavax/net/ssl/SSLEngine;
            2   20     3           startTls  Z
            5    6     4  wrappedConnection  Lorg/xnio/ssl/SslConnection;
            9   20     4  wrappedConnection  Lorg/xnio/ssl/SslConnection;
            7    9     5                  e  Ljava/lang/RuntimeException;
           13   15     5                  e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.RuntimeException
          10    11      12  Class java.io.IOException
    MethodParameters:
            Name  Flags
      connection  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 org.xnio.ssl.JsseXnioSsl$4.handleEvent:(Lorg/xnio/StreamConnection;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lorg/xnio/ChannelListener<Lorg/xnio/StreamConnection;>;
SourceFile: "JsseXnioSsl.java"
EnclosingMethod: org.xnio.ssl.JsseXnioSsl.openSslConnection:(Lorg/xnio/XnioIoThread;Ljava/net/InetSocketAddress;Ljava/net/InetSocketAddress;Lorg/xnio/ChannelListener;Lorg/xnio/ChannelListener;Lorg/xnio/OptionMap;)Lorg/xnio/IoFuture;
NestHost: org.xnio.ssl.JsseXnioSsl
InnerClasses:
  org.xnio.ssl.JsseXnioSsl$4