class org.xnio.nio.NioXnio$ConstructorSelectorCreator implements org.xnio.nio.NioXnio$SelectorCreator
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.xnio.nio.NioXnio$ConstructorSelectorCreator
  super_class: java.lang.Object
{
  private final java.lang.reflect.Constructor<? extends java.nio.channels.Selector> constructor;
    descriptor: Ljava/lang/reflect/Constructor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/reflect/Constructor<+Ljava/nio/channels/Selector;>;

  private final java.nio.channels.spi.SelectorProvider provider;
    descriptor: Ljava/nio/channels/spi/SelectorProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.String, java.nio.channels.spi.SelectorProvider);
    descriptor: (Ljava/lang/String;Ljava/nio/channels/spi/SelectorProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.xnio.nio.NioXnio$ConstructorSelectorCreator this
        start local 1 // java.lang.String name
        start local 2 // java.nio.channels.spi.SelectorProvider provider
         0: .line 285
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 286
            aload 0 /* this */
            aload 2 /* provider */
            putfield org.xnio.nio.NioXnio$ConstructorSelectorCreator.provider:Ljava/nio/channels/spi/SelectorProvider;
         2: .line 287
            aload 1 /* name */
            iconst_1
            aconst_null
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            ldc Ljava/nio/channels/Selector;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* selectorImplClass */
        start local 3 // java.lang.Class selectorImplClass
         3: .line 288
            aload 3 /* selectorImplClass */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/nio/channels/spi/SelectorProvider;
            aastore
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 4 /* constructor */
        start local 4 // java.lang.reflect.Constructor constructor
         4: .line 289
            aload 4 /* constructor */
            iconst_1
            invokevirtual java.lang.reflect.Constructor.setAccessible:(Z)V
         5: .line 290
            aload 0 /* this */
            aload 4 /* constructor */
            putfield org.xnio.nio.NioXnio$ConstructorSelectorCreator.constructor:Ljava/lang/reflect/Constructor;
         6: .line 291
            return
        end local 4 // java.lang.reflect.Constructor constructor
        end local 3 // java.lang.Class selectorImplClass
        end local 2 // java.nio.channels.spi.SelectorProvider provider
        end local 1 // java.lang.String name
        end local 0 // org.xnio.nio.NioXnio$ConstructorSelectorCreator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/xnio/nio/NioXnio$ConstructorSelectorCreator;
            0    7     1               name  Ljava/lang/String;
            0    7     2           provider  Ljava/nio/channels/spi/SelectorProvider;
            3    7     3  selectorImplClass  Ljava/lang/Class<+Ljava/nio/channels/Selector;>;
            4    7     4        constructor  Ljava/lang/reflect/Constructor<+Ljava/nio/channels/Selector;>;
    Exceptions:
      throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException
    MethodParameters:
          Name  Flags
      name      final
      provider  final

  public java.nio.channels.Selector open();
    descriptor: ()Ljava/nio/channels/Selector;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.xnio.nio.NioXnio$ConstructorSelectorCreator this
         0: .line 295
            aload 0 /* this */
            getfield org.xnio.nio.NioXnio$ConstructorSelectorCreator.constructor:Ljava/lang/reflect/Constructor;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.xnio.nio.NioXnio$ConstructorSelectorCreator.provider:Ljava/nio/channels/spi/SelectorProvider;
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.nio.channels.Selector
         1: areturn
         2: .line 296
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            pop
         3: .line 297
            invokestatic java.nio.channels.Selector.open:()Ljava/nio/channels/Selector;
            areturn
         4: .line 298
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            pop
         5: .line 299
            invokestatic java.nio.channels.Selector.open:()Ljava/nio/channels/Selector;
            areturn
         6: .line 300
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 1 /* e */
        start local 1 // java.lang.reflect.InvocationTargetException e
         7: .line 302
            aload 1 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            athrow
         8: .line 303
      StackMap locals: org.xnio.nio.NioXnio$ConstructorSelectorCreator java.lang.reflect.InvocationTargetException
      StackMap stack: java.lang.Throwable
            astore 2 /* e2 */
        start local 2 // java.lang.Throwable e2
         9: .line 304
            aload 2 /* e2 */
            athrow
        end local 2 // java.lang.Throwable e2
        10: .line 305
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        11: .line 306
            getstatic org.xnio.nio.Log.log:Lorg/xnio/nio/Log;
            aload 2 /* t */
            invokeinterface org.xnio.nio.Log.unexpectedSelectorOpenProblem:(Ljava/lang/Throwable;)Ljava/lang/IllegalStateException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.reflect.InvocationTargetException e
        end local 0 // org.xnio.nio.NioXnio$ConstructorSelectorCreator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/xnio/nio/NioXnio$ConstructorSelectorCreator;
            7   12     1     e  Ljava/lang/reflect/InvocationTargetException;
            9   10     2    e2  Ljava/lang/Throwable;
           11   12     2     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InstantiationException
           0     1       4  Class java.lang.IllegalAccessException
           0     1       6  Class java.lang.reflect.InvocationTargetException
           7     8       8  Class java.io.IOException
           7     8       8  Class java.lang.Error
           7     8       8  Class java.lang.RuntimeException
           7     8      10  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.xnio.nio.NioXnio$ConstructorSelectorCreator this
         0: .line 312
            ldc "Selector creator %s for provider %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.xnio.nio.NioXnio$ConstructorSelectorCreator.constructor:Ljava/lang/reflect/Constructor;
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.xnio.nio.NioXnio$ConstructorSelectorCreator.provider:Ljava/nio/channels/spi/SelectorProvider;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.xnio.nio.NioXnio$ConstructorSelectorCreator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/nio/NioXnio$ConstructorSelectorCreator;
}
SourceFile: "NioXnio.java"
NestHost: org.xnio.nio.NioXnio
InnerClasses:
  private ConstructorSelectorCreator = org.xnio.nio.NioXnio$ConstructorSelectorCreator of org.xnio.nio.NioXnio
  abstract SelectorCreator = org.xnio.nio.NioXnio$SelectorCreator of org.xnio.nio.NioXnio