class sun.nio.ch.InheritedChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.nio.ch.InheritedChannel
  super_class: java.lang.Object
{
  private static final int UNKNOWN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final int SOCK_STREAM;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int SOCK_DGRAM;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int AF_UNKNOWN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final int AF_INET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int AF_INET6;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int AF_UNIX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int O_RDONLY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int O_WRONLY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int O_RDWR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static int devnull;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean haveChannel;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.nio.channels.Channel channel;
    descriptor: Ljava/nio/channels/Channel;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 40
            ldc Lsun/nio/ch/InheritedChannel;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.nio.ch.InheritedChannel.$assertionsDisabled:Z
         3: .line 65
            iconst_m1
            putstatic sun.nio.ch.InheritedChannel.devnull:I
         4: .line 235
            iconst_0
            putstatic sun.nio.ch.InheritedChannel.haveChannel:Z
         5: .line 236
            aconst_null
            putstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
         6: .line 278
            invokestatic sun.nio.ch.IOUtil.load:()V
         7: .line 279
            invokestatic sun.nio.ch.InheritedChannel.initIDs:()V
         8: .line 280
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.InheritedChannel this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.nio.ch.InheritedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/InheritedChannel;

  private static void detachIOStreams();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 69
            getstatic sun.nio.ch.InheritedChannel.devnull:I
            iconst_0
            invokestatic sun.nio.ch.InheritedChannel.dup2:(II)V
         1: .line 70
            getstatic sun.nio.ch.InheritedChannel.devnull:I
            iconst_1
            invokestatic sun.nio.ch.InheritedChannel.dup2:(II)V
         2: .line 71
            getstatic sun.nio.ch.InheritedChannel.devnull:I
            iconst_2
            invokestatic sun.nio.ch.InheritedChannel.dup2:(II)V
         3: .line 72
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         4: astore 0 /* ioe */
        start local 0 // java.io.IOException ioe
         5: .line 74
            new java.lang.InternalError
            dup
            aload 0 /* ioe */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.io.IOException ioe
         6: .line 76
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            5    6     0   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException

  private static void checkAccess(java.nio.channels.Channel);
    descriptor: (Ljava/nio/channels/Channel;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.nio.channels.Channel c
         0: .line 155
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         1: .line 156
            aload 1 /* sm */
            ifnull 5
         2: .line 157
            aload 1 /* sm */
         3: .line 158
            new java.lang.RuntimePermission
            dup
            ldc "inheritedChannel"
            invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
         4: .line 157
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         5: .line 161
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            return
        end local 1 // java.lang.SecurityManager sm
        end local 0 // java.nio.channels.Channel c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     c  Ljava/nio/channels/Channel;
            1    6     1    sm  Ljava/lang/SecurityManager;
    MethodParameters:
      Name  Flags
      c     

  private static java.nio.channels.Channel createChannel();
    descriptor: ()Ljava/nio/channels/Channel;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=0
         0: .line 176
            iconst_0
            invokestatic sun.nio.ch.InheritedChannel.dup:(I)I
            istore 0 /* fdVal */
        start local 0 // int fdVal
         1: .line 182
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.soType0:(I)I
            istore 1 /* st */
        start local 1 // int st
         2: .line 183
            iload 1 /* st */
            iconst_1
            if_icmpeq 5
            iload 1 /* st */
            iconst_2
            if_icmpeq 5
         3: .line 184
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.close0:(I)V
         4: .line 185
            aconst_null
            areturn
         5: .line 192
      StackMap locals: int int
      StackMap stack:
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            astore 2 /* paramTypes */
        start local 2 // java.lang.Class[] paramTypes
         6: .line 193
            ldc "java.io.FileDescriptor"
         7: .line 194
            aload 2 /* paramTypes */
         8: .line 193
            invokestatic sun.nio.ch.Reflect.lookupConstructor:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 3 /* ctr */
        start local 3 // java.lang.reflect.Constructor ctr
         9: .line 195
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 0 /* fdVal */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            astore 4 /* args */
        start local 4 // java.lang.Object[] args
        10: .line 196
            aload 3 /* ctr */
            aload 4 /* args */
            invokestatic sun.nio.ch.Reflect.invoke:(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.FileDescriptor
            astore 5 /* fd */
        start local 5 // java.io.FileDescriptor fd
        11: .line 204
            invokestatic java.nio.channels.spi.SelectorProvider.provider:()Ljava/nio/channels/spi/SelectorProvider;
            astore 6 /* provider */
        start local 6 // java.nio.channels.spi.SelectorProvider provider
        12: .line 205
            getstatic sun.nio.ch.InheritedChannel.$assertionsDisabled:Z
            ifne 13
            aload 6 /* provider */
            instanceof sun.nio.ch.SelectorProviderImpl
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 208
      StackMap locals: int int java.lang.Class[] java.lang.reflect.Constructor java.lang.Object[] java.io.FileDescriptor java.nio.channels.spi.SelectorProvider
      StackMap stack:
            iload 1 /* st */
            iconst_1
            if_icmpne 30
        14: .line 209
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.addressFamily:(I)I
            istore 8 /* family */
        start local 8 // int family
        15: .line 210
            iload 8 /* family */
            iconst_m1
            if_icmpne 17
        16: .line 211
            aconst_null
            areturn
        17: .line 212
      StackMap locals: int int java.lang.Class[] java.lang.reflect.Constructor java.lang.Object[] java.io.FileDescriptor java.nio.channels.spi.SelectorProvider top int
      StackMap stack:
            iload 8 /* family */
            iconst_3
            if_icmpne 21
        18: .line 213
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.isConnected:(I)Z
            ifeq 20
        19: .line 214
            new sun.nio.ch.InheritedChannel$InheritedUnixChannelImpl
            dup
            aload 5 /* fd */
            invokespecial sun.nio.ch.InheritedChannel$InheritedUnixChannelImpl.<init>:(Ljava/io/FileDescriptor;)V
            areturn
        20: .line 217
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        21: .line 220
      StackMap locals:
      StackMap stack:
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.peerAddress0:(I)Ljava/net/InetAddress;
            astore 9 /* ia */
        start local 9 // java.net.InetAddress ia
        22: .line 221
            aload 9 /* ia */
            ifnonnull 25
        23: .line 222
            new sun.nio.ch.InheritedChannel$InheritedServerSocketChannelImpl
            dup
            aload 6 /* provider */
            aload 5 /* fd */
            invokespecial sun.nio.ch.InheritedChannel$InheritedServerSocketChannelImpl.<init>:(Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;)V
            astore 7 /* c */
        start local 7 // java.nio.channels.Channel c
        24: .line 223
            goto 31
        end local 7 // java.nio.channels.Channel c
        25: .line 224
      StackMap locals: java.net.InetAddress
      StackMap stack:
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.peerPort0:(I)I
            istore 10 /* port */
        start local 10 // int port
        26: .line 225
            getstatic sun.nio.ch.InheritedChannel.$assertionsDisabled:Z
            ifne 27
            iload 10 /* port */
            ifgt 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 226
      StackMap locals: int
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aload 9 /* ia */
            iload 10 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 11 /* isa */
        start local 11 // java.net.InetSocketAddress isa
        28: .line 227
            new sun.nio.ch.InheritedChannel$InheritedSocketChannelImpl
            dup
            aload 6 /* provider */
            aload 5 /* fd */
            aload 11 /* isa */
            invokespecial sun.nio.ch.InheritedChannel$InheritedSocketChannelImpl.<init>:(Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)V
            astore 7 /* c */
        end local 11 // java.net.InetSocketAddress isa
        end local 10 // int port
        end local 9 // java.net.InetAddress ia
        end local 8 // int family
        start local 7 // java.nio.channels.Channel c
        29: .line 229
            goto 31
        end local 7 // java.nio.channels.Channel c
        30: .line 230
      StackMap locals: int int java.lang.Class[] java.lang.reflect.Constructor java.lang.Object[] java.io.FileDescriptor java.nio.channels.spi.SelectorProvider
      StackMap stack:
            new sun.nio.ch.InheritedChannel$InheritedDatagramChannelImpl
            dup
            aload 6 /* provider */
            aload 5 /* fd */
            invokespecial sun.nio.ch.InheritedChannel$InheritedDatagramChannelImpl.<init>:(Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;)V
            astore 7 /* c */
        start local 7 // java.nio.channels.Channel c
        31: .line 232
      StackMap locals: java.nio.channels.Channel
      StackMap stack:
            aload 7 /* c */
            areturn
        end local 7 // java.nio.channels.Channel c
        end local 6 // java.nio.channels.spi.SelectorProvider provider
        end local 5 // java.io.FileDescriptor fd
        end local 4 // java.lang.Object[] args
        end local 3 // java.lang.reflect.Constructor ctr
        end local 2 // java.lang.Class[] paramTypes
        end local 1 // int st
        end local 0 // int fdVal
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1   32     0       fdVal  I
            2   32     1          st  I
            6   32     2  paramTypes  [Ljava/lang/Class;
            9   32     3         ctr  Ljava/lang/reflect/Constructor<*>;
           10   32     4        args  [Ljava/lang/Object;
           11   32     5          fd  Ljava/io/FileDescriptor;
           12   32     6    provider  Ljava/nio/channels/spi/SelectorProvider;
           24   25     7           c  Ljava/nio/channels/Channel;
           29   30     7           c  Ljava/nio/channels/Channel;
           31   32     7           c  Ljava/nio/channels/Channel;
           15   29     8      family  I
           22   29     9          ia  Ljava/net/InetAddress;
           26   29    10        port  I
           28   29    11         isa  Ljava/net/InetSocketAddress;
    Exceptions:
      throws java.io.IOException

  public static synchronized java.nio.channels.Channel getChannel();
    descriptor: ()Ljava/nio/channels/Channel;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=0, args_size=0
         0: .line 243
            getstatic sun.nio.ch.InheritedChannel.devnull:I
            ifge 2
         1: .line 244
            ldc "/dev/null"
            iconst_2
            invokestatic sun.nio.ch.InheritedChannel.open0:(Ljava/lang/String;I)I
            putstatic sun.nio.ch.InheritedChannel.devnull:I
         2: .line 248
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.InheritedChannel.haveChannel:Z
            ifne 5
         3: .line 249
            invokestatic sun.nio.ch.InheritedChannel.createChannel:()Ljava/nio/channels/Channel;
            putstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
         4: .line 250
            iconst_1
            putstatic sun.nio.ch.InheritedChannel.haveChannel:Z
         5: .line 255
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
            ifnull 7
         6: .line 256
            getstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
            invokestatic sun.nio.ch.InheritedChannel.checkAccess:(Ljava/nio/channels/Channel;)V
         7: .line 258
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  private static native void initIDs();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native int dup(int);
    descriptor: (I)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    

  private static native void dup2(int, int);
    descriptor: (II)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    
      fd2   

  private static native int open0(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      path   
      oflag  

  private static native void close0(int);
    descriptor: (I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    

  private static native int soType0(int);
    descriptor: (I)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  private static native int addressFamily(int);
    descriptor: (I)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  private static native java.net.InetAddress peerAddress0(int);
    descriptor: (I)Ljava/net/InetAddress;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  private static native int peerPort0(int);
    descriptor: (I)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  private static native boolean isConnected(int);
    descriptor: (I)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    
}
SourceFile: "InheritedChannel.java"
NestMembers:
  sun.nio.ch.InheritedChannel$InheritedDatagramChannelImpl  sun.nio.ch.InheritedChannel$InheritedServerSocketChannelImpl  sun.nio.ch.InheritedChannel$InheritedSocketChannelImpl  sun.nio.ch.InheritedChannel$InheritedUnixChannelImpl
InnerClasses:
  public InheritedDatagramChannelImpl = sun.nio.ch.InheritedChannel$InheritedDatagramChannelImpl of sun.nio.ch.InheritedChannel
  public InheritedServerSocketChannelImpl = sun.nio.ch.InheritedChannel$InheritedServerSocketChannelImpl of sun.nio.ch.InheritedChannel
  public InheritedSocketChannelImpl = sun.nio.ch.InheritedChannel$InheritedSocketChannelImpl of sun.nio.ch.InheritedChannel
  public InheritedUnixChannelImpl = sun.nio.ch.InheritedChannel$InheritedUnixChannelImpl of sun.nio.ch.InheritedChannel