public class io.undertow.protocols.alpn.JDK9AlpnProvider implements io.undertow.protocols.alpn.ALPNProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.undertow.protocols.alpn.JDK9AlpnProvider
  super_class: java.lang.Object
{
  public static final io.undertow.protocols.alpn.JDK9AlpnProvider$JDK9ALPNMethods JDK_9_ALPN_METHODS;
    descriptor: Lio/undertow/protocols/alpn/JDK9AlpnProvider$JDK9ALPNMethods;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 43
            new io.undertow.protocols.alpn.JDK9AlpnProvider$1
            dup
            invokespecial io.undertow.protocols.alpn.JDK9AlpnProvider$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast io.undertow.protocols.alpn.JDK9AlpnProvider$JDK9ALPNMethods
            putstatic io.undertow.protocols.alpn.JDK9AlpnProvider.JDK_9_ALPN_METHODS:Lio/undertow/protocols/alpn/JDK9AlpnProvider$JDK9ALPNMethods;
         1: .line 57
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/alpn/JDK9AlpnProvider;

  public boolean isEnabled(javax.net.ssl.SSLEngine);
    descriptor: (Ljavax/net/ssl/SSLEngine;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
        start local 1 // javax.net.ssl.SSLEngine sslEngine
         0: .line 79
            getstatic io.undertow.protocols.alpn.JDK9AlpnProvider.JDK_9_ALPN_METHODS:Lio/undertow/protocols/alpn/JDK9AlpnProvider$JDK9ALPNMethods;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // javax.net.ssl.SSLEngine sslEngine
        end local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/undertow/protocols/alpn/JDK9AlpnProvider;
            0    2     1  sslEngine  Ljavax/net/ssl/SSLEngine;
    MethodParameters:
           Name  Flags
      sslEngine  

  public javax.net.ssl.SSLEngine setProtocols(javax.net.ssl.SSLEngine, java.lang.String[]);
    descriptor: (Ljavax/net/ssl/SSLEngine;[Ljava/lang/String;)Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
        start local 1 // javax.net.ssl.SSLEngine engine
        start local 2 // java.lang.String[] protocols
         0: .line 84
            aload 1 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 3 /* sslParameters */
        start local 3 // javax.net.ssl.SSLParameters sslParameters
         1: .line 86
            getstatic io.undertow.protocols.alpn.JDK9AlpnProvider.JDK_9_ALPN_METHODS:Lio/undertow/protocols/alpn/JDK9AlpnProvider$JDK9ALPNMethods;
            invokevirtual io.undertow.protocols.alpn.JDK9AlpnProvider$JDK9ALPNMethods.setApplicationProtocols:()Ljava/lang/reflect/Method;
            aload 3 /* sslParameters */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* protocols */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 87
            goto 5
      StackMap locals: io.undertow.protocols.alpn.JDK9AlpnProvider javax.net.ssl.SSLEngine java.lang.String[] javax.net.ssl.SSLParameters
      StackMap stack: java.lang.ReflectiveOperationException
         3: astore 4 /* e */
        start local 4 // java.lang.ReflectiveOperationException e
         4: .line 88
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.ReflectiveOperationException e
         5: .line 90
      StackMap locals:
      StackMap stack:
            aload 1 /* engine */
            aload 3 /* sslParameters */
            invokevirtual javax.net.ssl.SSLEngine.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
         6: .line 91
            aload 1 /* engine */
            areturn
        end local 3 // javax.net.ssl.SSLParameters sslParameters
        end local 2 // java.lang.String[] protocols
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lio/undertow/protocols/alpn/JDK9AlpnProvider;
            0    7     1         engine  Ljavax/net/ssl/SSLEngine;
            0    7     2      protocols  [Ljava/lang/String;
            1    7     3  sslParameters  Ljavax/net/ssl/SSLParameters;
            4    5     4              e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.IllegalAccessException
           1     2       3  Class java.lang.reflect.InvocationTargetException
    MethodParameters:
           Name  Flags
      engine     
      protocols  

  public java.lang.String getSelectedProtocol(javax.net.ssl.SSLEngine);
    descriptor: (Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
        start local 1 // javax.net.ssl.SSLEngine engine
         0: .line 97
            getstatic io.undertow.protocols.alpn.JDK9AlpnProvider.JDK_9_ALPN_METHODS:Lio/undertow/protocols/alpn/JDK9AlpnProvider$JDK9ALPNMethods;
            invokevirtual io.undertow.protocols.alpn.JDK9AlpnProvider$JDK9ALPNMethods.getApplicationProtocol:()Ljava/lang/reflect/Method;
            aload 1 /* engine */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
         1: areturn
         2: .line 98
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 2 /* e */
        start local 2 // java.lang.ReflectiveOperationException e
         3: .line 99
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.ReflectiveOperationException e
        end local 1 // javax.net.ssl.SSLEngine engine
        end local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/undertow/protocols/alpn/JDK9AlpnProvider;
            0    4     1  engine  Ljavax/net/ssl/SSLEngine;
            3    4     2       e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalAccessException
           0     1       2  Class java.lang.reflect.InvocationTargetException
    MethodParameters:
        Name  Flags
      engine  

  public int getPriority();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
         0: .line 105
            sipush 300
            ireturn
        end local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/alpn/JDK9AlpnProvider;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
         0: .line 110
            ldc "JDK9AlpnProvider"
            areturn
        end local 0 // io.undertow.protocols.alpn.JDK9AlpnProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/alpn/JDK9AlpnProvider;
}
SourceFile: "JDK9AlpnProvider.java"
NestMembers:
  io.undertow.protocols.alpn.JDK9AlpnProvider$1  io.undertow.protocols.alpn.JDK9AlpnProvider$JDK9ALPNMethods
InnerClasses:
  io.undertow.protocols.alpn.JDK9AlpnProvider$1
  public JDK9ALPNMethods = io.undertow.protocols.alpn.JDK9AlpnProvider$JDK9ALPNMethods of io.undertow.protocols.alpn.JDK9AlpnProvider