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 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 39
            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 58
            iconst_m1
            putstatic sun.nio.ch.InheritedChannel.devnull:I
         4: .line 200
            iconst_0
            putstatic sun.nio.ch.InheritedChannel.haveChannel:Z
         5: .line 201
            aconst_null
            putstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
         6: .line 239
            invokestatic sun.nio.ch.IOUtil.load:()V
         7: .line 240
            invokestatic sun.nio.ch.InheritedChannel.initIDs:()V
         8: .line 241
            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 39
            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 62
            getstatic sun.nio.ch.InheritedChannel.devnull:I
            iconst_0
            invokestatic sun.nio.ch.InheritedChannel.dup2:(II)V
         1: .line 63
            getstatic sun.nio.ch.InheritedChannel.devnull:I
            iconst_1
            invokestatic sun.nio.ch.InheritedChannel.dup2:(II)V
         2: .line 64
            getstatic sun.nio.ch.InheritedChannel.devnull:I
            iconst_2
            invokestatic sun.nio.ch.InheritedChannel.dup2:(II)V
         3: .line 65
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         4: astore 0 /* ioe */
        start local 0 // java.io.IOException ioe
         5: .line 67
            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 69
      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 130
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         1: .line 131
            aload 1 /* sm */
            ifnull 5
         2: .line 132
            aload 1 /* sm */
         3: .line 133
            new java.lang.RuntimePermission
            dup
            ldc "inheritedChannel"
            invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
         4: .line 132
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         5: .line 136
      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=11, args_size=0
         0: .line 151
            iconst_0
            invokestatic sun.nio.ch.InheritedChannel.dup:(I)I
            istore 0 /* fdVal */
        start local 0 // int fdVal
         1: .line 157
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.soType0:(I)I
            istore 1 /* st */
        start local 1 // int st
         2: .line 158
            iload 1 /* st */
            iconst_1
            if_icmpeq 5
            iload 1 /* st */
            iconst_2
            if_icmpeq 5
         3: .line 159
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.close0:(I)V
         4: .line 160
            aconst_null
            areturn
         5: .line 168
      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 169
            ldc "java.io.FileDescriptor"
         7: .line 170
            aload 2 /* paramTypes */
         8: .line 169
            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 171
            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 172
            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 180
            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 181
            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 184
      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 23
        14: .line 185
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.peerAddress0:(I)Ljava/net/InetAddress;
            astore 8 /* ia */
        start local 8 // java.net.InetAddress ia
        15: .line 186
            aload 8 /* ia */
            ifnonnull 18
        16: .line 187
            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
        17: .line 188
            goto 24
        end local 7 // java.nio.channels.Channel c
        18: .line 189
      StackMap locals: int int java.lang.Class[] java.lang.reflect.Constructor java.lang.Object[] java.io.FileDescriptor java.nio.channels.spi.SelectorProvider top java.net.InetAddress
      StackMap stack:
            iload 0 /* fdVal */
            invokestatic sun.nio.ch.InheritedChannel.peerPort0:(I)I
            istore 9 /* port */
        start local 9 // int port
        19: .line 190
            getstatic sun.nio.ch.InheritedChannel.$assertionsDisabled:Z
            ifne 20
            iload 9 /* port */
            ifgt 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 191
      StackMap locals: int
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aload 8 /* ia */
            iload 9 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 10 /* isa */
        start local 10 // java.net.InetSocketAddress isa
        21: .line 192
            new sun.nio.ch.InheritedChannel$InheritedSocketChannelImpl
            dup
            aload 6 /* provider */
            aload 5 /* fd */
            aload 10 /* 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 10 // java.net.InetSocketAddress isa
        end local 9 // int port
        end local 8 // java.net.InetAddress ia
        start local 7 // java.nio.channels.Channel c
        22: .line 194
            goto 24
        end local 7 // java.nio.channels.Channel c
        23: .line 195
      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
        24: .line 197
      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   25     0       fdVal  I
            2   25     1          st  I
            6   25     2  paramTypes  [Ljava/lang/Class;
            9   25     3         ctr  Ljava/lang/reflect/Constructor<*>;
           10   25     4        args  [Ljava/lang/Object;
           11   25     5          fd  Ljava/io/FileDescriptor;
           12   25     6    provider  Ljava/nio/channels/spi/SelectorProvider;
           17   18     7           c  Ljava/nio/channels/Channel;
           22   23     7           c  Ljava/nio/channels/Channel;
           24   25     7           c  Ljava/nio/channels/Channel;
           15   22     8          ia  Ljava/net/InetAddress;
           19   22     9        port  I
           21   22    10         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 208
            getstatic sun.nio.ch.InheritedChannel.devnull:I
            ifge 2
         1: .line 209
            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 213
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.InheritedChannel.haveChannel:Z
            ifne 5
         3: .line 214
            invokestatic sun.nio.ch.InheritedChannel.createChannel:()Ljava/nio/channels/Channel;
            putstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
         4: .line 215
            iconst_1
            putstatic sun.nio.ch.InheritedChannel.haveChannel:Z
         5: .line 220
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
            ifnull 7
         6: .line 221
            getstatic sun.nio.ch.InheritedChannel.channel:Ljava/nio/channels/Channel;
            invokestatic sun.nio.ch.InheritedChannel.checkAccess:(Ljava/nio/channels/Channel;)V
         7: .line 223
      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 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    
}
SourceFile: "InheritedChannel.java"
NestMembers:
  sun.nio.ch.InheritedChannel$InheritedDatagramChannelImpl  sun.nio.ch.InheritedChannel$InheritedServerSocketChannelImpl  sun.nio.ch.InheritedChannel$InheritedSocketChannelImpl
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