public final class sun.nio.ch.NioSocketImpl extends java.net.SocketImpl implements sun.net.PlatformSocketImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.nio.ch.NioSocketImpl
  super_class: java.net.SocketImpl
{
  private static final sun.nio.ch.NativeDispatcher nd;
    descriptor: Lsun/nio/ch/NativeDispatcher;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private final boolean server;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.locks.ReentrantLock readLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.locks.ReentrantLock writeLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object stateLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

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

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

  private volatile int state;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private boolean stream;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private sun.nio.ch.NioSocketImpl$FileDescriptorCloser closer;
    descriptor: Lsun/nio/ch/NioSocketImpl$FileDescriptorCloser;
    flags: (0x0002) ACC_PRIVATE

  private volatile boolean nonBlocking;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private long readerThread;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long writerThread;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private boolean isReuseAddress;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private volatile int timeout;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean isInputClosed;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean isOutputClosed;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private boolean readEOF;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean connectionReset;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static volatile java.util.Set<java.net.SocketOption<?>> clientSocketOptions;
    descriptor: Ljava/util/Set;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
    Signature: Ljava/util/Set<Ljava/net/SocketOption<*>;>;

  private static volatile java.util.Set<java.net.SocketOption<?>> serverSocketOptions;
    descriptor: Ljava/util/Set;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
    Signature: Ljava/util/Set<Ljava/net/SocketOption<*>;>;

  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=2, locals=0, args_size=0
         0: .line 81
            ldc Lsun/nio/ch/NioSocketImpl;
            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.NioSocketImpl.$assertionsDisabled:Z
         3: .line 82
            new sun.nio.ch.SocketDispatcher
            dup
            invokespecial sun.nio.ch.SocketDispatcher.<init>:()V
            putstatic sun.nio.ch.NioSocketImpl.nd:Lsun/nio/ch/NativeDispatcher;
         4: .line 919
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // boolean server
         0: .line 136
            aload 0 /* this */
            invokespecial java.net.SocketImpl.<init>:()V
         1: .line 92
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 95
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.nio.ch.NioSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         3: .line 98
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
         4: .line 137
            aload 0 /* this */
            iload 1 /* server */
            putfield sun.nio.ch.NioSocketImpl.server:Z
         5: .line 138
            return
        end local 1 // boolean server
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/nio/ch/NioSocketImpl;
            0    6     1  server  Z
    MethodParameters:
        Name  Flags
      server  

  private boolean isOpen();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 144
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            iconst_4
            if_icmpge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/NioSocketImpl;

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 151
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            istore 1 /* state */
        start local 1 // int state
         1: .line 152
            iload 1 /* state */
            ifne 3
         2: .line 153
            new java.net.SocketException
            dup
            ldc "Socket not created"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 154
      StackMap locals: int
      StackMap stack:
            iload 1 /* state */
            iconst_4
            if_icmplt 5
         4: .line 155
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 156
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int state
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/nio/ch/NioSocketImpl;
            1    6     1  state  I
    Exceptions:
      throws java.net.SocketException

  private void ensureOpenAndConnected();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 162
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            istore 1 /* state */
        start local 1 // int state
         1: .line 163
            iload 1 /* state */
            iconst_3
            if_icmpge 3
         2: .line 164
            new java.net.SocketException
            dup
            ldc "Not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 165
      StackMap locals: int
      StackMap stack:
            iload 1 /* state */
            iconst_3
            if_icmple 5
         4: .line 166
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 167
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int state
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/nio/ch/NioSocketImpl;
            1    6     1  state  I
    Exceptions:
      throws java.net.SocketException

  private void park(java.io.FileDescriptor, int, long);
    descriptor: (Ljava/io/FileDescriptor;IJ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // int event
        start local 3 // long nanos
         0: .line 177
            lload 3 /* nanos */
            lconst_0
            lcmp
            ifne 3
         1: .line 178
            ldc -1
            lstore 5 /* millis */
        start local 5 // long millis
         2: .line 179
            goto 4
        end local 5 // long millis
         3: .line 180
      StackMap locals:
      StackMap stack:
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            lload 3 /* nanos */
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            lstore 5 /* millis */
        start local 5 // long millis
         4: .line 182
      StackMap locals: long
      StackMap stack:
            aload 1 /* fd */
            iload 2 /* event */
            lload 5 /* millis */
            invokestatic sun.nio.ch.Net.poll:(Ljava/io/FileDescriptor;IJ)I
            pop
         5: .line 183
            return
        end local 5 // long millis
        end local 3 // long nanos
        end local 2 // int event
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/nio/ch/NioSocketImpl;
            0    6     1      fd  Ljava/io/FileDescriptor;
            0    6     2   event  I
            0    6     3   nanos  J
            2    3     5  millis  J
            4    6     5  millis  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fd     
      event  
      nanos  

  private void park(java.io.FileDescriptor, int);
    descriptor: (Ljava/io/FileDescriptor;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // int event
         0: .line 191
            aload 0 /* this */
            aload 1 /* fd */
            iload 2 /* event */
            lconst_0
            invokevirtual sun.nio.ch.NioSocketImpl.park:(Ljava/io/FileDescriptor;IJ)V
         1: .line 192
            return
        end local 2 // int event
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/nio/ch/NioSocketImpl;
            0    2     1     fd  Ljava/io/FileDescriptor;
            0    2     2  event  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fd     
      event  

  private void configureBlocking(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
         0: .line 200
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.nonBlocking:Z
            ifeq 10
         2: .line 202
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 203
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         4: .line 204
            aload 1 /* fd */
            iconst_1
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
         5: .line 205
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.NioSocketImpl.nonBlocking:Z
         6: .line 202
            aload 2
            monitorexit
         7: goto 10
      StackMap locals: sun.nio.ch.NioSocketImpl java.io.FileDescriptor java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 208
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/nio/ch/NioSocketImpl;
            0   11     1    fd  Ljava/io/FileDescriptor;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    

  private void configureNonBlocking(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
         0: .line 216
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.nonBlocking:Z
            ifne 10
         2: .line 218
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 219
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         4: .line 220
            aload 1 /* fd */
            iconst_0
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
         5: .line 221
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.NioSocketImpl.nonBlocking:Z
         6: .line 218
            aload 2
            monitorexit
         7: goto 10
      StackMap locals: sun.nio.ch.NioSocketImpl java.io.FileDescriptor java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 224
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/nio/ch/NioSocketImpl;
            0   11     1    fd  Ljava/io/FileDescriptor;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    

  private java.io.FileDescriptor beginRead();
    descriptor: ()Ljava/io/FileDescriptor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 231
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 232
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpenAndConnected:()V
         2: .line 233
            aload 0 /* this */
            invokestatic sun.nio.ch.NativeThread.current:()J
            putfield sun.nio.ch.NioSocketImpl.readerThread:J
         3: .line 234
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1
            monitorexit
         4: areturn
         5: .line 231
      StackMap locals: sun.nio.ch.NioSocketImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/nio/ch/NioSocketImpl;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.net.SocketException

  private void endRead(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // boolean completed
         0: .line 243
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 244
            aload 0 /* this */
            lconst_0
            putfield sun.nio.ch.NioSocketImpl.readerThread:J
         2: .line 245
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            istore 3 /* state */
        start local 3 // int state
         3: .line 246
            iload 3 /* state */
            iconst_4
            if_icmpne 5
         4: .line 247
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.tryFinishClose:()V
         5: .line 248
      StackMap locals: java.lang.Object int
      StackMap stack:
            iload 1 /* completed */
            ifne 7
            iload 3 /* state */
            iconst_4
            if_icmplt 7
         6: .line 249
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int state
         7: .line 243
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 251
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean completed
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lsun/nio/ch/NioSocketImpl;
            0   12     1  completed  Z
            3    7     3      state  I
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
           Name  Flags
      completed  

  private int tryRead(java.io.FileDescriptor, byte[], int, int);
    descriptor: (Ljava/io/FileDescriptor;[BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // byte[] b
        start local 3 // int off
        start local 4 // int len
         0: .line 259
            iload 4 /* len */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 5 /* dst */
        start local 5 // java.nio.ByteBuffer dst
         1: .line 260
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 2
            aload 5 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 262
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            getstatic sun.nio.ch.NioSocketImpl.nd:Lsun/nio/ch/NativeDispatcher;
            aload 1 /* fd */
            aload 5 /* dst */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 4 /* len */
            invokevirtual sun.nio.ch.NativeDispatcher.read:(Ljava/io/FileDescriptor;JI)I
            istore 6 /* n */
        start local 6 // int n
         3: .line 263
            iload 6 /* n */
            ifle 5
         4: .line 264
            aload 5 /* dst */
            aload 2 /* b */
            iload 3 /* off */
            iload 6 /* n */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
         5: .line 266
      StackMap locals: int
      StackMap stack:
            iload 6 /* n */
            istore 8
         6: .line 268
            aload 5 /* dst */
            invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
         7: .line 266
            iload 8
            ireturn
        end local 6 // int n
         8: .line 267
      StackMap locals: sun.nio.ch.NioSocketImpl java.io.FileDescriptor byte[] int int java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 7
         9: .line 268
            aload 5 /* dst */
            invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        10: .line 269
            aload 7
            athrow
        end local 5 // java.nio.ByteBuffer dst
        end local 4 // int len
        end local 3 // int off
        end local 2 // byte[] b
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/nio/ch/NioSocketImpl;
            0   11     1    fd  Ljava/io/FileDescriptor;
            0   11     2     b  [B
            0   11     3   off  I
            0   11     4   len  I
            1   11     5   dst  Ljava/nio/ByteBuffer;
            3    8     6     n  I
      Exception table:
        from    to  target  type
           2     6       8  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    
      b     
      off   
      len   

  private int timedRead(java.io.FileDescriptor, byte[], int, int, long);
    descriptor: (Ljava/io/FileDescriptor;[BIIJ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=6
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // byte[] b
        start local 3 // int off
        start local 4 // int len
        start local 5 // long nanos
         0: .line 279
            invokestatic java.lang.System.nanoTime:()J
            lstore 7 /* startNanos */
        start local 7 // long startNanos
         1: .line 280
            aload 0 /* this */
            aload 1 /* fd */
            aload 2 /* b */
            iload 3 /* off */
            iload 4 /* len */
            invokevirtual sun.nio.ch.NioSocketImpl.tryRead:(Ljava/io/FileDescriptor;[BII)I
            istore 9 /* n */
        start local 9 // int n
         2: .line 281
            goto 8
         3: .line 282
      StackMap locals: long int
      StackMap stack:
            lload 5 /* nanos */
            invokestatic java.lang.System.nanoTime:()J
            lload 7 /* startNanos */
            lsub
            lsub
            lstore 10 /* remainingNanos */
        start local 10 // long remainingNanos
         4: .line 283
            lload 10 /* remainingNanos */
            lconst_0
            lcmp
            ifgt 6
         5: .line 284
            new java.net.SocketTimeoutException
            dup
            ldc "Read timed out"
            invokespecial java.net.SocketTimeoutException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 286
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fd */
            getstatic sun.nio.ch.Net.POLLIN:S
            lload 10 /* remainingNanos */
            invokevirtual sun.nio.ch.NioSocketImpl.park:(Ljava/io/FileDescriptor;IJ)V
         7: .line 287
            aload 0 /* this */
            aload 1 /* fd */
            aload 2 /* b */
            iload 3 /* off */
            iload 4 /* len */
            invokevirtual sun.nio.ch.NioSocketImpl.tryRead:(Ljava/io/FileDescriptor;[BII)I
            istore 9 /* n */
        end local 10 // long remainingNanos
         8: .line 281
      StackMap locals:
      StackMap stack:
            iload 9 /* n */
            bipush -2
            if_icmpne 9
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifne 3
         9: .line 289
      StackMap locals:
      StackMap stack:
            iload 9 /* n */
            ireturn
        end local 9 // int n
        end local 7 // long startNanos
        end local 5 // long nanos
        end local 4 // int len
        end local 3 // int off
        end local 2 // byte[] b
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lsun/nio/ch/NioSocketImpl;
            0   10     1              fd  Ljava/io/FileDescriptor;
            0   10     2               b  [B
            0   10     3             off  I
            0   10     4             len  I
            0   10     5           nanos  J
            1   10     7      startNanos  J
            2   10     9               n  I
            4    8    10  remainingNanos  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fd     
      b      
      off    
      len    
      nanos  

  private int implRead(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=9, args_size=4
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 299
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         1: .line 300
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.beginRead:()Ljava/io/FileDescriptor;
            astore 5 /* fd */
        start local 5 // java.io.FileDescriptor fd
         2: .line 302
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.connectionReset:Z
            ifeq 4
         3: .line 303
            new java.net.SocketException
            dup
            ldc "Connection reset"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 304
      StackMap locals: int java.io.FileDescriptor
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.isInputClosed:Z
            ifeq 9
         5: .line 328
            aload 0 /* this */
            iload 4 /* n */
            ifle 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: sun.nio.ch.NioSocketImpl
         6: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor
      StackMap stack: sun.nio.ch.NioSocketImpl int
         7: invokevirtual sun.nio.ch.NioSocketImpl.endRead:(Z)V
         8: .line 305
            iconst_m1
            ireturn
         9: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.timeout:I
            istore 6 /* timeout */
        start local 6 // int timeout
        10: .line 307
            iload 6 /* timeout */
            ifle 14
        11: .line 309
            aload 0 /* this */
            aload 5 /* fd */
            invokevirtual sun.nio.ch.NioSocketImpl.configureNonBlocking:(Ljava/io/FileDescriptor;)V
        12: .line 310
            aload 0 /* this */
            aload 5 /* fd */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            iload 6 /* timeout */
            i2l
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            invokevirtual sun.nio.ch.NioSocketImpl.timedRead:(Ljava/io/FileDescriptor;[BIIJ)I
            istore 4 /* n */
        13: .line 311
            goto 19
        14: .line 313
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* fd */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual sun.nio.ch.NioSocketImpl.tryRead:(Ljava/io/FileDescriptor;[BII)I
            istore 4 /* n */
        15: .line 314
            goto 18
        16: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* fd */
            getstatic sun.nio.ch.Net.POLLIN:S
            invokevirtual sun.nio.ch.NioSocketImpl.park:(Ljava/io/FileDescriptor;I)V
        17: .line 316
            aload 0 /* this */
            aload 5 /* fd */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual sun.nio.ch.NioSocketImpl.tryRead:(Ljava/io/FileDescriptor;[BII)I
            istore 4 /* n */
        18: .line 314
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            i2l
            invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
            ifeq 19
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifne 16
        19: .line 319
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            istore 8
        20: .line 328
            aload 0 /* this */
            iload 4 /* n */
            ifle 21
            iconst_1
            goto 22
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor int top int
      StackMap stack: sun.nio.ch.NioSocketImpl
        21: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor int top int
      StackMap stack: sun.nio.ch.NioSocketImpl int
        22: invokevirtual sun.nio.ch.NioSocketImpl.endRead:(Z)V
        23: .line 319
            iload 8
            ireturn
        end local 6 // int timeout
        24: .line 320
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor
      StackMap stack: java.net.SocketTimeoutException
            astore 6 /* e */
        start local 6 // java.net.SocketTimeoutException e
        25: .line 321
            aload 6 /* e */
            athrow
        end local 6 // java.net.SocketTimeoutException e
        26: .line 322
      StackMap locals:
      StackMap stack: sun.net.ConnectionResetException
            pop
        27: .line 323
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.NioSocketImpl.connectionReset:Z
        28: .line 324
            new java.net.SocketException
            dup
            ldc "Connection reset"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 325
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        30: .line 326
            new java.net.SocketException
            dup
            aload 6 /* ioe */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.io.IOException ioe
        31: .line 327
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        32: .line 328
            aload 0 /* this */
            iload 4 /* n */
            ifle 33
            iconst_1
            goto 34
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor top java.lang.Throwable
      StackMap stack: sun.nio.ch.NioSocketImpl
        33: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor top java.lang.Throwable
      StackMap stack: sun.nio.ch.NioSocketImpl int
        34: invokevirtual sun.nio.ch.NioSocketImpl.endRead:(Z)V
        35: .line 329
            aload 7
            athrow
        end local 5 // java.io.FileDescriptor fd
        end local 4 // int n
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   36     0     this  Lsun/nio/ch/NioSocketImpl;
            0   36     1        b  [B
            0   36     2      off  I
            0   36     3      len  I
            1   36     4        n  I
            2   36     5       fd  Ljava/io/FileDescriptor;
           10   24     6  timeout  I
           25   26     6        e  Ljava/net/SocketTimeoutException;
           30   31     6      ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     5      24  Class java.net.SocketTimeoutException
           9    20      24  Class java.net.SocketTimeoutException
           2     5      26  Class sun.net.ConnectionResetException
           9    20      26  Class sun.net.ConnectionResetException
           2     5      29  Class java.io.IOException
           9    20      29  Class java.io.IOException
           2     5      31  any
           9    20      31  any
          24    31      31  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  private int read(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 340
            iload 2 /* off */
            iload 3 /* len */
            aload 1 /* b */
            arraylength
            invokestatic java.util.Objects.checkFromIndexSize:(III)I
            pop
         1: .line 341
            iload 3 /* len */
            ifne 3
         2: .line 342
            iconst_0
            ireturn
         3: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         4: .line 347
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readEOF:Z
            ifeq 7
         5: .line 356
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 348
            iconst_m1
            ireturn
         7: .line 350
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ldc 131072
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* size */
        start local 4 // int size
         8: .line 351
            aload 0 /* this */
            aload 1 /* b */
            iload 2 /* off */
            iload 4 /* size */
            invokevirtual sun.nio.ch.NioSocketImpl.implRead:([BII)I
            istore 5 /* n */
        start local 5 // int n
         9: .line 352
            iload 5 /* n */
            iconst_m1
            if_icmpne 11
        10: .line 353
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.NioSocketImpl.readEOF:Z
        11: .line 354
      StackMap locals: int int
      StackMap stack:
            iload 5 /* n */
            istore 7
        12: .line 356
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        13: .line 354
            iload 7
            ireturn
        end local 5 // int n
        end local 4 // int size
        14: .line 355
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int
      StackMap stack: java.lang.Throwable
            astore 6
        15: .line 356
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 357
            aload 6
            athrow
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lsun/nio/ch/NioSocketImpl;
            0   17     1     b  [B
            0   17     2   off  I
            0   17     3   len  I
            8   14     4  size  I
            9   14     5     n  I
      Exception table:
        from    to  target  type
           4     5      14  any
           7    12      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  private java.io.FileDescriptor beginWrite();
    descriptor: ()Ljava/io/FileDescriptor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 366
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 367
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpenAndConnected:()V
         2: .line 368
            aload 0 /* this */
            invokestatic sun.nio.ch.NativeThread.current:()J
            putfield sun.nio.ch.NioSocketImpl.writerThread:J
         3: .line 369
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1
            monitorexit
         4: areturn
         5: .line 366
      StackMap locals: sun.nio.ch.NioSocketImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/nio/ch/NioSocketImpl;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.net.SocketException

  private void endWrite(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // boolean completed
         0: .line 378
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 379
            aload 0 /* this */
            lconst_0
            putfield sun.nio.ch.NioSocketImpl.writerThread:J
         2: .line 380
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            istore 3 /* state */
        start local 3 // int state
         3: .line 381
            iload 3 /* state */
            iconst_4
            if_icmpne 5
         4: .line 382
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.tryFinishClose:()V
         5: .line 383
      StackMap locals: java.lang.Object int
      StackMap stack:
            iload 1 /* completed */
            ifne 7
            iload 3 /* state */
            iconst_4
            if_icmplt 7
         6: .line 384
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int state
         7: .line 378
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 386
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean completed
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lsun/nio/ch/NioSocketImpl;
            0   12     1  completed  Z
            3    7     3      state  I
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
           Name  Flags
      completed  

  private int tryWrite(java.io.FileDescriptor, byte[], int, int);
    descriptor: (Ljava/io/FileDescriptor;[BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // byte[] b
        start local 3 // int off
        start local 4 // int len
         0: .line 395
            iload 4 /* len */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 5 /* src */
        start local 5 // java.nio.ByteBuffer src
         1: .line 396
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 2
            aload 5 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 398
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* src */
            aload 2 /* b */
            iload 3 /* off */
            iload 4 /* len */
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
         3: .line 399
            getstatic sun.nio.ch.NioSocketImpl.nd:Lsun/nio/ch/NativeDispatcher;
            aload 1 /* fd */
            aload 5 /* src */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 4 /* len */
            invokevirtual sun.nio.ch.NativeDispatcher.write:(Ljava/io/FileDescriptor;JI)I
            istore 7
         4: .line 401
            aload 5 /* src */
            invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
         5: .line 399
            iload 7
            ireturn
         6: .line 400
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
         7: .line 401
            aload 5 /* src */
            invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
         8: .line 402
            aload 6
            athrow
        end local 5 // java.nio.ByteBuffer src
        end local 4 // int len
        end local 3 // int off
        end local 2 // byte[] b
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/nio/ch/NioSocketImpl;
            0    9     1    fd  Ljava/io/FileDescriptor;
            0    9     2     b  [B
            0    9     3   off  I
            0    9     4   len  I
            1    9     5   src  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
           2     4       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fd    
      b     
      off   
      len   

  private int implWrite(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 411
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         1: .line 412
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.beginWrite:()Ljava/io/FileDescriptor;
            astore 5 /* fd */
        start local 5 // java.io.FileDescriptor fd
         2: .line 414
            aload 0 /* this */
            aload 5 /* fd */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual sun.nio.ch.NioSocketImpl.tryWrite:(Ljava/io/FileDescriptor;[BII)I
            istore 4 /* n */
         3: .line 415
            goto 6
         4: .line 416
      StackMap locals: int java.io.FileDescriptor
      StackMap stack:
            aload 0 /* this */
            aload 5 /* fd */
            getstatic sun.nio.ch.Net.POLLOUT:S
            invokevirtual sun.nio.ch.NioSocketImpl.park:(Ljava/io/FileDescriptor;I)V
         5: .line 417
            aload 0 /* this */
            aload 5 /* fd */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual sun.nio.ch.NioSocketImpl.tryWrite:(Ljava/io/FileDescriptor;[BII)I
            istore 4 /* n */
         6: .line 415
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            i2l
            invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
            ifeq 7
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifne 4
         7: .line 419
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            istore 8
         8: .line 423
            aload 0 /* this */
            iload 4 /* n */
            ifle 9
            iconst_1
            goto 10
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor top top int
      StackMap stack: sun.nio.ch.NioSocketImpl
         9: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor top top int
      StackMap stack: sun.nio.ch.NioSocketImpl int
        10: invokevirtual sun.nio.ch.NioSocketImpl.endWrite:(Z)V
        11: .line 419
            iload 8
            ireturn
        12: .line 420
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor
      StackMap stack: java.io.IOException
            astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        13: .line 421
            new java.net.SocketException
            dup
            aload 6 /* ioe */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.io.IOException ioe
        14: .line 422
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        15: .line 423
            aload 0 /* this */
            iload 4 /* n */
            ifle 16
            iconst_1
            goto 17
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor top java.lang.Throwable
      StackMap stack: sun.nio.ch.NioSocketImpl
        16: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int int java.io.FileDescriptor top java.lang.Throwable
      StackMap stack: sun.nio.ch.NioSocketImpl int
        17: invokevirtual sun.nio.ch.NioSocketImpl.endWrite:(Z)V
        18: .line 424
            aload 7
            athrow
        end local 5 // java.io.FileDescriptor fd
        end local 4 // int n
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lsun/nio/ch/NioSocketImpl;
            0   19     1     b  [B
            0   19     2   off  I
            0   19     3   len  I
            1   19     4     n  I
            2   19     5    fd  Ljava/io/FileDescriptor;
           13   14     6   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     8      12  Class java.io.IOException
           2     8      14  any
          12    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  private void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 432
            iload 2 /* off */
            iload 3 /* len */
            aload 1 /* b */
            arraylength
            invokestatic java.util.Objects.checkFromIndexSize:(III)I
            pop
         1: .line 433
            iload 3 /* len */
            ifle 15
         2: .line 434
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 436
            iload 2 /* off */
            istore 4 /* pos */
        start local 4 // int pos
         4: .line 437
            iload 2 /* off */
            iload 3 /* len */
            iadd
            istore 5 /* end */
        start local 5 // int end
         5: .line 438
            goto 9
         6: .line 440
      StackMap locals: int int
      StackMap stack:
            iload 5 /* end */
            iload 4 /* pos */
            isub
            ldc 131072
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* size */
        start local 6 // int size
         7: .line 441
            aload 0 /* this */
            aload 1 /* b */
            iload 4 /* pos */
            iload 6 /* size */
            invokevirtual sun.nio.ch.NioSocketImpl.implWrite:([BII)I
            istore 7 /* n */
        start local 7 // int n
         8: .line 442
            iload 4 /* pos */
            iload 7 /* n */
            iadd
            istore 4 /* pos */
        end local 7 // int n
        end local 6 // int size
         9: .line 438
      StackMap locals:
      StackMap stack:
            iload 4 /* pos */
            iload 5 /* end */
            if_icmplt 6
        end local 5 // int end
        end local 4 // int pos
        10: .line 444
            goto 14
      StackMap locals: sun.nio.ch.NioSocketImpl byte[] int int
      StackMap stack: java.lang.Throwable
        11: astore 8
        12: .line 445
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        13: .line 446
            aload 8
            athrow
        14: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        15: .line 448
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lsun/nio/ch/NioSocketImpl;
            0   16     1     b  [B
            0   16     2   off  I
            0   16     3   len  I
            4   10     4   pos  I
            5   10     5   end  I
            7    9     6  size  I
            8    9     7     n  I
      Exception table:
        from    to  target  type
           3    11      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  protected void create(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // boolean stream
         0: .line 456
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 457
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            ifeq 3
         2: .line 458
            new java.io.IOException
            dup
            ldc "Already created"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 459
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 1 /* stream */
            ifne 5
         4: .line 460
            invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
         5: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.server:Z
            ifeq 9
         6: .line 464
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 7
            iload 1 /* stream */
            ifne 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 465
      StackMap locals:
      StackMap stack:
            iconst_1
            invokestatic sun.nio.ch.Net.serverSocket:(Z)Ljava/io/FileDescriptor;
            astore 3 /* fd */
        start local 3 // java.io.FileDescriptor fd
         8: .line 466
            goto 15
        end local 3 // java.io.FileDescriptor fd
         9: .line 467
      StackMap locals:
      StackMap stack:
            iload 1 /* stream */
            invokestatic sun.nio.ch.Net.socket:(Z)Ljava/io/FileDescriptor;
            astore 3 /* fd */
        start local 3 // java.io.FileDescriptor fd
        10: .line 469
            goto 15
        end local 3 // java.io.FileDescriptor fd
      StackMap locals:
      StackMap stack: java.io.IOException
        11: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        12: .line 470
            iload 1 /* stream */
            ifne 14
        13: .line 471
            invokestatic sun.net.ResourceManager.afterUdpClose:()V
        14: .line 472
      StackMap locals: sun.nio.ch.NioSocketImpl int java.lang.Object top java.io.IOException
      StackMap stack:
            aload 4 /* ioe */
            athrow
        end local 4 // java.io.IOException ioe
        start local 3 // java.io.FileDescriptor fd
        15: .line 474
      StackMap locals: sun.nio.ch.NioSocketImpl int java.lang.Object java.io.FileDescriptor
      StackMap stack:
            aload 0 /* this */
            aload 3 /* fd */
            putfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
        16: .line 475
            aload 0 /* this */
            iload 1 /* stream */
            putfield sun.nio.ch.NioSocketImpl.stream:Z
        17: .line 476
            aload 0 /* this */
            aload 0 /* this */
            invokestatic sun.nio.ch.NioSocketImpl$FileDescriptorCloser.create:(Lsun/nio/ch/NioSocketImpl;)Lsun/nio/ch/NioSocketImpl$FileDescriptorCloser;
            putfield sun.nio.ch.NioSocketImpl.closer:Lsun/nio/ch/NioSocketImpl$FileDescriptorCloser;
        18: .line 477
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.NioSocketImpl.state:I
        end local 3 // java.io.FileDescriptor fd
        19: .line 456
            aload 2
            monitorexit
        20: goto 23
      StackMap locals: sun.nio.ch.NioSocketImpl int java.lang.Object
      StackMap stack: java.lang.Throwable
        21: aload 2
            monitorexit
        22: athrow
        23: .line 479
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean stream
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   24     0    this  Lsun/nio/ch/NioSocketImpl;
            0   24     1  stream  Z
            8    9     3      fd  Ljava/io/FileDescriptor;
           10   11     3      fd  Ljava/io/FileDescriptor;
           15   19     3      fd  Ljava/io/FileDescriptor;
           12   15     4     ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5    10      11  Class java.io.IOException
           1    20      21  any
          21    22      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  private java.io.FileDescriptor beginConnect(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)Ljava/io/FileDescriptor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.net.InetAddress address
        start local 2 // int port
         0: .line 488
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 489
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            istore 4 /* state */
        start local 4 // int state
         2: .line 490
            iload 4 /* state */
            iconst_1
            if_icmpeq 12
         3: .line 491
            iload 4 /* state */
            ifne 5
         4: .line 492
            new java.net.SocketException
            dup
            ldc "Not created"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 493
      StackMap locals: java.lang.Object int
      StackMap stack:
            iload 4 /* state */
            iconst_2
            if_icmpne 7
         6: .line 494
            new java.net.SocketException
            dup
            ldc "Connection in progress"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 495
      StackMap locals:
      StackMap stack:
            iload 4 /* state */
            iconst_3
            if_icmpne 9
         8: .line 496
            new java.net.SocketException
            dup
            ldc "Already connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 497
      StackMap locals:
      StackMap stack:
            iload 4 /* state */
            iconst_4
            if_icmplt 11
        10: .line 498
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 499
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 501
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield sun.nio.ch.NioSocketImpl.state:I
        13: .line 504
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.localport:I
            ifne 15
        14: .line 505
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* address */
            iload 2 /* port */
            invokestatic sun.net.NetHooks.beforeTcpConnect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
        15: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* address */
            putfield sun.nio.ch.NioSocketImpl.address:Ljava/net/InetAddress;
        16: .line 510
            aload 0 /* this */
            iload 2 /* port */
            putfield sun.nio.ch.NioSocketImpl.port:I
        17: .line 512
            aload 0 /* this */
            invokestatic sun.nio.ch.NativeThread.current:()J
            putfield sun.nio.ch.NioSocketImpl.readerThread:J
        18: .line 513
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 3
            monitorexit
        19: areturn
        end local 4 // int state
        20: .line 488
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.InetAddress int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        21: athrow
        end local 2 // int port
        end local 1 // java.net.InetAddress address
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lsun/nio/ch/NioSocketImpl;
            0   22     1  address  Ljava/net/InetAddress;
            0   22     2     port  I
            2   20     4    state  I
      Exception table:
        from    to  target  type
           1    19      20  any
          20    21      20  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      address  
      port     

  private void endConnect(java.io.FileDescriptor, boolean);
    descriptor: (Ljava/io/FileDescriptor;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // boolean completed
         0: .line 522
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 523
            aload 0 /* this */
            lconst_0
            putfield sun.nio.ch.NioSocketImpl.readerThread:J
         2: .line 524
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            istore 4 /* state */
        start local 4 // int state
         3: .line 525
            iload 4 /* state */
            iconst_4
            if_icmpne 5
         4: .line 526
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.tryFinishClose:()V
         5: .line 527
      StackMap locals: java.lang.Object int
      StackMap stack:
            iload 2 /* completed */
            ifeq 9
            iload 4 /* state */
            iconst_2
            if_icmpne 9
         6: .line 528
            aload 0 /* this */
            iconst_3
            putfield sun.nio.ch.NioSocketImpl.state:I
         7: .line 529
            aload 0 /* this */
            aload 1 /* fd */
            invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
            invokevirtual java.net.InetSocketAddress.getPort:()I
            putfield sun.nio.ch.NioSocketImpl.localport:I
         8: .line 530
            goto 11
      StackMap locals:
      StackMap stack:
         9: iload 2 /* completed */
            ifne 11
            iload 4 /* state */
            iconst_4
            if_icmplt 11
        10: .line 531
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int state
        11: .line 522
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        15: .line 534
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean completed
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lsun/nio/ch/NioSocketImpl;
            0   16     1         fd  Ljava/io/FileDescriptor;
            0   16     2  completed  Z
            3   11     4      state  I
      Exception table:
        from    to  target  type
           1    12      13  any
          13    14      13  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      fd         
      completed  

  private boolean timedFinishConnect(java.io.FileDescriptor, long);
    descriptor: (Ljava/io/FileDescriptor;J)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // long nanos
         0: .line 541
            invokestatic java.lang.System.nanoTime:()J
            lstore 4 /* startNanos */
        start local 4 // long startNanos
         1: .line 542
            aload 1 /* fd */
            invokestatic sun.nio.ch.Net.pollConnectNow:(Ljava/io/FileDescriptor;)Z
            istore 6 /* polled */
        start local 6 // boolean polled
         2: .line 543
            goto 8
         3: .line 544
      StackMap locals: long int
      StackMap stack:
            lload 2 /* nanos */
            invokestatic java.lang.System.nanoTime:()J
            lload 4 /* startNanos */
            lsub
            lsub
            lstore 7 /* remainingNanos */
        start local 7 // long remainingNanos
         4: .line 545
            lload 7 /* remainingNanos */
            lconst_0
            lcmp
            ifgt 6
         5: .line 546
            new java.net.SocketTimeoutException
            dup
            ldc "Connect timed out"
            invokespecial java.net.SocketTimeoutException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 548
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fd */
            getstatic sun.nio.ch.Net.POLLOUT:S
            lload 7 /* remainingNanos */
            invokevirtual sun.nio.ch.NioSocketImpl.park:(Ljava/io/FileDescriptor;IJ)V
         7: .line 549
            aload 1 /* fd */
            invokestatic sun.nio.ch.Net.pollConnectNow:(Ljava/io/FileDescriptor;)Z
            istore 6 /* polled */
        end local 7 // long remainingNanos
         8: .line 543
      StackMap locals:
      StackMap stack:
            iload 6 /* polled */
            ifne 9
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifne 3
         9: .line 551
      StackMap locals:
      StackMap stack:
            iload 6 /* polled */
            ifeq 10
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifeq 10
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        10: iconst_0
            ireturn
        end local 6 // boolean polled
        end local 4 // long startNanos
        end local 2 // long nanos
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lsun/nio/ch/NioSocketImpl;
            0   11     1              fd  Ljava/io/FileDescriptor;
            0   11     2           nanos  J
            1   11     4      startNanos  J
            2   11     6          polled  Z
            4    8     7  remainingNanos  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fd     
      nanos  

  protected void connect(java.net.SocketAddress, int);
    descriptor: (Ljava/net/SocketAddress;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=14, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.net.SocketAddress remote
        start local 2 // int millis
         0: .line 563
            aload 1 /* remote */
            instanceof java.net.InetSocketAddress
            ifne 2
         1: .line 564
            new java.io.IOException
            dup
            ldc "Unsupported address type"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 565
      StackMap locals:
      StackMap stack:
            aload 1 /* remote */
            checkcast java.net.InetSocketAddress
            astore 3 /* isa */
        start local 3 // java.net.InetSocketAddress isa
         3: .line 566
            aload 3 /* isa */
            invokevirtual java.net.InetSocketAddress.isUnresolved:()Z
            ifeq 5
         4: .line 567
            new java.net.UnknownHostException
            dup
            aload 3 /* isa */
            invokevirtual java.net.InetSocketAddress.getHostName:()Ljava/lang/String;
            invokespecial java.net.UnknownHostException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 570
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            aload 3 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            astore 4 /* address */
        start local 4 // java.net.InetAddress address
         6: .line 571
            aload 4 /* address */
            invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
            ifeq 8
         7: .line 572
            invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
            astore 4 /* address */
         8: .line 573
      StackMap locals: java.net.InetAddress
      StackMap stack:
            aload 3 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            istore 5 /* port */
        start local 5 // int port
         9: .line 575
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 6 /* connectLock */
        start local 6 // java.util.concurrent.locks.ReentrantLock connectLock
        10: .line 577
            aload 6 /* connectLock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        11: .line 579
            iconst_0
            istore 7 /* connected */
        start local 7 // boolean connected
        12: .line 580
            aload 0 /* this */
            aload 4 /* address */
            iload 5 /* port */
            invokevirtual sun.nio.ch.NioSocketImpl.beginConnect:(Ljava/net/InetAddress;I)Ljava/io/FileDescriptor;
            astore 8 /* fd */
        start local 8 // java.io.FileDescriptor fd
        13: .line 584
            iload 2 /* millis */
            ifle 15
        14: .line 585
            aload 0 /* this */
            aload 8 /* fd */
            invokevirtual sun.nio.ch.NioSocketImpl.configureNonBlocking:(Ljava/io/FileDescriptor;)V
        15: .line 588
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketAddress int java.net.InetSocketAddress java.net.InetAddress int java.util.concurrent.locks.ReentrantLock int java.io.FileDescriptor
      StackMap stack:
            aload 8 /* fd */
            aload 4 /* address */
            iload 5 /* port */
            invokestatic sun.nio.ch.Net.connect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
            istore 9 /* n */
        start local 9 // int n
        16: .line 589
            iload 9 /* n */
            ifle 19
        17: .line 591
            iconst_1
            istore 7 /* connected */
        18: .line 592
            goto 32
        19: .line 593
      StackMap locals: int
      StackMap stack:
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 20
            iload 9 /* n */
            i2l
            invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
            ifne 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 594
      StackMap locals:
      StackMap stack:
            iload 2 /* millis */
            ifle 24
        21: .line 596
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            iload 2 /* millis */
            i2l
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 10 /* nanos */
        start local 10 // long nanos
        22: .line 597
            aload 0 /* this */
            aload 8 /* fd */
            lload 10 /* nanos */
            invokevirtual sun.nio.ch.NioSocketImpl.timedFinishConnect:(Ljava/io/FileDescriptor;J)Z
            istore 7 /* connected */
        end local 10 // long nanos
        23: .line 598
            goto 32
        24: .line 600
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* polled */
        start local 10 // boolean polled
        25: .line 601
            goto 28
        26: .line 602
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 8 /* fd */
            getstatic sun.nio.ch.Net.POLLOUT:S
            invokevirtual sun.nio.ch.NioSocketImpl.park:(Ljava/io/FileDescriptor;I)V
        27: .line 603
            aload 8 /* fd */
            invokestatic sun.nio.ch.Net.pollConnectNow:(Ljava/io/FileDescriptor;)Z
            istore 10 /* polled */
        28: .line 601
      StackMap locals:
      StackMap stack:
            iload 10 /* polled */
            ifne 29
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifne 26
        29: .line 605
      StackMap locals:
      StackMap stack:
            iload 10 /* polled */
            ifeq 30
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifeq 30
            iconst_1
            goto 31
      StackMap locals:
      StackMap stack:
        30: iconst_0
      StackMap locals:
      StackMap stack: int
        31: istore 7 /* connected */
        end local 10 // boolean polled
        32: .line 610
      StackMap locals:
      StackMap stack:
            iload 7 /* connected */
            ifeq 38
            iload 2 /* millis */
            ifle 38
        33: .line 611
            aload 0 /* this */
            aload 8 /* fd */
            invokevirtual sun.nio.ch.NioSocketImpl.configureBlocking:(Ljava/io/FileDescriptor;)V
        end local 9 // int n
        34: .line 614
            goto 38
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketAddress int java.net.InetSocketAddress java.net.InetAddress int java.util.concurrent.locks.ReentrantLock int java.io.FileDescriptor
      StackMap stack: java.lang.Throwable
        35: astore 12
        36: .line 615
            aload 0 /* this */
            aload 8 /* fd */
            iload 7 /* connected */
            invokevirtual sun.nio.ch.NioSocketImpl.endConnect:(Ljava/io/FileDescriptor;Z)V
        37: .line 616
            aload 12
            athrow
        38: .line 615
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* fd */
            iload 7 /* connected */
            invokevirtual sun.nio.ch.NioSocketImpl.endConnect:(Ljava/io/FileDescriptor;Z)V
        end local 8 // java.io.FileDescriptor fd
        end local 7 // boolean connected
        39: .line 617
            goto 43
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketAddress int java.net.InetSocketAddress java.net.InetAddress int java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
        40: astore 13
        41: .line 618
            aload 6 /* connectLock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        42: .line 619
            aload 13
            athrow
        43: .line 618
      StackMap locals:
      StackMap stack:
            aload 6 /* connectLock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        44: .line 620
            goto 48
      StackMap locals:
      StackMap stack: java.io.IOException
        45: astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        46: .line 621
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.close:()V
        47: .line 622
            aload 7 /* ioe */
            aload 3 /* isa */
            invokestatic sun.net.util.SocketExceptions.of:(Ljava/io/IOException;Ljava/net/InetSocketAddress;)Ljava/io/IOException;
            athrow
        end local 7 // java.io.IOException ioe
        48: .line 624
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.util.concurrent.locks.ReentrantLock connectLock
        end local 5 // int port
        end local 4 // java.net.InetAddress address
        end local 3 // java.net.InetSocketAddress isa
        end local 2 // int millis
        end local 1 // java.net.SocketAddress remote
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   49     0         this  Lsun/nio/ch/NioSocketImpl;
            0   49     1       remote  Ljava/net/SocketAddress;
            0   49     2       millis  I
            3   49     3          isa  Ljava/net/InetSocketAddress;
            6   49     4      address  Ljava/net/InetAddress;
            9   49     5         port  I
           10   49     6  connectLock  Ljava/util/concurrent/locks/ReentrantLock;
           12   39     7    connected  Z
           13   39     8           fd  Ljava/io/FileDescriptor;
           16   34     9            n  I
           22   23    10        nanos  J
           25   32    10       polled  Z
           46   48     7          ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          13    35      35  any
          11    40      40  any
          10    44      45  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      remote  
      millis  

  protected void connect(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.lang.String host
        start local 2 // int port
         0: .line 628
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 1 /* host */
            iload 2 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            iconst_0
            invokevirtual sun.nio.ch.NioSocketImpl.connect:(Ljava/net/SocketAddress;I)V
         1: .line 629
            return
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/NioSocketImpl;
            0    2     1  host  Ljava/lang/String;
            0    2     2  port  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      host  
      port  

  protected void connect(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.net.InetAddress address
        start local 2 // int port
         0: .line 633
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 1 /* address */
            iload 2 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            iconst_0
            invokevirtual sun.nio.ch.NioSocketImpl.connect:(Ljava/net/SocketAddress;I)V
         1: .line 634
            return
        end local 2 // int port
        end local 1 // java.net.InetAddress address
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/nio/ch/NioSocketImpl;
            0    2     1  address  Ljava/net/InetAddress;
            0    2     2     port  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      address  
      port     

  protected void bind(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.net.InetAddress host
        start local 2 // int port
         0: .line 638
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 639
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         2: .line 640
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.localport:I
            ifeq 4
         3: .line 641
            new java.net.SocketException
            dup
            ldc "Already bound"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 642
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* host */
            iload 2 /* port */
            invokestatic sun.net.NetHooks.beforeTcpBind:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
         5: .line 643
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* host */
            iload 2 /* port */
            invokestatic sun.nio.ch.Net.bind:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
         6: .line 647
            aload 0 /* this */
            aload 1 /* host */
            putfield sun.nio.ch.NioSocketImpl.address:Ljava/net/InetAddress;
         7: .line 648
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
            invokevirtual java.net.InetSocketAddress.getPort:()I
            putfield sun.nio.ch.NioSocketImpl.localport:I
         8: .line 638
            aload 3
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        12: .line 650
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int port
        end local 1 // java.net.InetAddress host
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/nio/ch/NioSocketImpl;
            0   13     1  host  Ljava/net/InetAddress;
            0   13     2  port  I
      Exception table:
        from    to  target  type
           1     9      10  any
          10    11      10  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      host  
      port  

  protected void listen(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // int backlog
         0: .line 654
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 655
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         2: .line 656
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.localport:I
            ifne 4
         3: .line 657
            new java.net.SocketException
            dup
            ldc "Not bound"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 658
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            iload 1 /* backlog */
            iconst_1
            if_icmpge 5
            bipush 50
            goto 6
      StackMap locals:
      StackMap stack: java.io.FileDescriptor
         5: iload 1 /* backlog */
      StackMap locals: sun.nio.ch.NioSocketImpl int java.lang.Object
      StackMap stack: java.io.FileDescriptor int
         6: invokestatic sun.nio.ch.Net.listen:(Ljava/io/FileDescriptor;I)V
         7: .line 654
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 660
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int backlog
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lsun/nio/ch/NioSocketImpl;
            0   12     1  backlog  I
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      backlog  

  private java.io.FileDescriptor beginAccept();
    descriptor: ()Ljava/io/FileDescriptor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 667
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 668
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         2: .line 669
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stream:Z
            ifne 4
         3: .line 670
            new java.net.SocketException
            dup
            ldc "Not a stream socket"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 671
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.localport:I
            ifne 6
         5: .line 672
            new java.net.SocketException
            dup
            ldc "Not bound"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic sun.nio.ch.NativeThread.current:()J
            putfield sun.nio.ch.NioSocketImpl.readerThread:J
         7: .line 674
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1
            monitorexit
         8: areturn
         9: .line 667
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/nio/ch/NioSocketImpl;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Exceptions:
      throws java.net.SocketException

  private void endAccept(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // boolean completed
         0: .line 683
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 684
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            istore 3 /* state */
        start local 3 // int state
         2: .line 685
            aload 0 /* this */
            lconst_0
            putfield sun.nio.ch.NioSocketImpl.readerThread:J
         3: .line 686
            iload 3 /* state */
            iconst_4
            if_icmpne 5
         4: .line 687
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.tryFinishClose:()V
         5: .line 688
      StackMap locals: java.lang.Object int
      StackMap stack:
            iload 1 /* completed */
            ifne 7
            iload 3 /* state */
            iconst_4
            if_icmplt 7
         6: .line 689
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int state
         7: .line 683
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 691
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean completed
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lsun/nio/ch/NioSocketImpl;
            0   12     1  completed  Z
            2    7     3      state  I
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
           Name  Flags
      completed  

  private int timedAccept(java.io.FileDescriptor, java.io.FileDescriptor, java.net.InetSocketAddress[], long);
    descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;J)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=5
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.io.FileDescriptor newfd
        start local 3 // java.net.InetSocketAddress[] isaa
        start local 4 // long nanos
         0: .line 703
            invokestatic java.lang.System.nanoTime:()J
            lstore 6 /* startNanos */
        start local 6 // long startNanos
         1: .line 704
            aload 1 /* fd */
            aload 2 /* newfd */
            aload 3 /* isaa */
            invokestatic sun.nio.ch.Net.accept:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
            istore 8 /* n */
        start local 8 // int n
         2: .line 705
            goto 8
         3: .line 706
      StackMap locals: long int
      StackMap stack:
            lload 4 /* nanos */
            invokestatic java.lang.System.nanoTime:()J
            lload 6 /* startNanos */
            lsub
            lsub
            lstore 9 /* remainingNanos */
        start local 9 // long remainingNanos
         4: .line 707
            lload 9 /* remainingNanos */
            lconst_0
            lcmp
            ifgt 6
         5: .line 708
            new java.net.SocketTimeoutException
            dup
            ldc "Accept timed out"
            invokespecial java.net.SocketTimeoutException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 710
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fd */
            getstatic sun.nio.ch.Net.POLLIN:S
            lload 9 /* remainingNanos */
            invokevirtual sun.nio.ch.NioSocketImpl.park:(Ljava/io/FileDescriptor;IJ)V
         7: .line 711
            aload 1 /* fd */
            aload 2 /* newfd */
            aload 3 /* isaa */
            invokestatic sun.nio.ch.Net.accept:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
            istore 8 /* n */
        end local 9 // long remainingNanos
         8: .line 705
      StackMap locals:
      StackMap stack:
            iload 8 /* n */
            bipush -2
            if_icmpne 9
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifne 3
         9: .line 713
      StackMap locals:
      StackMap stack:
            iload 8 /* n */
            ireturn
        end local 8 // int n
        end local 6 // long startNanos
        end local 4 // long nanos
        end local 3 // java.net.InetSocketAddress[] isaa
        end local 2 // java.io.FileDescriptor newfd
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lsun/nio/ch/NioSocketImpl;
            0   10     1              fd  Ljava/io/FileDescriptor;
            0   10     2           newfd  Ljava/io/FileDescriptor;
            0   10     3            isaa  [Ljava/net/InetSocketAddress;
            0   10     4           nanos  J
            1   10     6      startNanos  J
            2   10     8               n  I
            4    8     9  remainingNanos  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      fd     
      newfd  
      isaa   
      nanos  

  protected void accept(java.net.SocketImpl);
    descriptor: (Ljava/net/SocketImpl;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.net.SocketImpl si
         0: .line 722
            aload 1 /* si */
            checkcast sun.nio.ch.NioSocketImpl
            astore 2 /* nsi */
        start local 2 // sun.nio.ch.NioSocketImpl nsi
         1: .line 723
            aload 2 /* nsi */
            getfield sun.nio.ch.NioSocketImpl.state:I
            ifeq 3
         2: .line 724
            new java.net.SocketException
            dup
            ldc "Not a newly created SocketImpl"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 726
      StackMap locals: sun.nio.ch.NioSocketImpl
      StackMap stack:
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 3 /* newfd */
        start local 3 // java.io.FileDescriptor newfd
         4: .line 727
            iconst_1
            anewarray java.net.InetSocketAddress
            astore 4 /* isaa */
        start local 4 // java.net.InetSocketAddress[] isaa
         5: .line 731
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 5 /* acceptLock */
        start local 5 // java.util.concurrent.locks.ReentrantLock acceptLock
         6: .line 732
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.timeout:I
            istore 6 /* timeout */
        start local 6 // int timeout
         7: .line 733
            lconst_0
            lstore 7 /* remainingNanos */
        start local 7 // long remainingNanos
         8: .line 734
            iload 6 /* timeout */
            ifle 13
         9: .line 735
            aload 5 /* acceptLock */
            iload 6 /* timeout */
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic sun.nio.ch.NioSocketImpl.tryLock:(Ljava/util/concurrent/locks/ReentrantLock;JLjava/util/concurrent/TimeUnit;)J
            lstore 7 /* remainingNanos */
        10: .line 736
            lload 7 /* remainingNanos */
            lconst_0
            lcmp
            ifgt 14
        11: .line 737
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 12
            aload 5 /* acceptLock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ifeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 738
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketImpl sun.nio.ch.NioSocketImpl java.io.FileDescriptor java.net.InetSocketAddress[] java.util.concurrent.locks.ReentrantLock int long
      StackMap stack:
            new java.net.SocketTimeoutException
            dup
            ldc "Accept timed out"
            invokespecial java.net.SocketTimeoutException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 741
      StackMap locals:
      StackMap stack:
            aload 5 /* acceptLock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        14: .line 746
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* n */
        start local 9 // int n
        15: .line 747
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.beginAccept:()Ljava/io/FileDescriptor;
            astore 10 /* fd */
        start local 10 // java.io.FileDescriptor fd
        16: .line 749
            lload 7 /* remainingNanos */
            lconst_0
            lcmp
            ifle 20
        17: .line 751
            aload 0 /* this */
            aload 10 /* fd */
            invokevirtual sun.nio.ch.NioSocketImpl.configureNonBlocking:(Ljava/io/FileDescriptor;)V
        18: .line 752
            aload 0 /* this */
            aload 10 /* fd */
            aload 3 /* newfd */
            aload 4 /* isaa */
            lload 7 /* remainingNanos */
            invokevirtual sun.nio.ch.NioSocketImpl.timedAccept:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;J)I
            istore 9 /* n */
        19: .line 753
            goto 32
        20: .line 755
      StackMap locals: int java.io.FileDescriptor
      StackMap stack:
            aload 10 /* fd */
            aload 3 /* newfd */
            aload 4 /* isaa */
            invokestatic sun.nio.ch.Net.accept:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
            istore 9 /* n */
        21: .line 756
            goto 24
        22: .line 757
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* fd */
            getstatic sun.nio.ch.Net.POLLIN:S
            invokevirtual sun.nio.ch.NioSocketImpl.park:(Ljava/io/FileDescriptor;I)V
        23: .line 758
            aload 10 /* fd */
            aload 3 /* newfd */
            aload 4 /* isaa */
            invokestatic sun.nio.ch.Net.accept:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
            istore 9 /* n */
        24: .line 756
      StackMap locals:
      StackMap stack:
            iload 9 /* n */
            i2l
            invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
            ifeq 32
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifne 22
        25: .line 761
            goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 11
        27: .line 762
            aload 0 /* this */
            iload 9 /* n */
            ifle 28
            iconst_1
            goto 29
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketImpl sun.nio.ch.NioSocketImpl java.io.FileDescriptor java.net.InetSocketAddress[] java.util.concurrent.locks.ReentrantLock int long int java.io.FileDescriptor java.lang.Throwable
      StackMap stack: sun.nio.ch.NioSocketImpl
        28: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketImpl sun.nio.ch.NioSocketImpl java.io.FileDescriptor java.net.InetSocketAddress[] java.util.concurrent.locks.ReentrantLock int long int java.io.FileDescriptor java.lang.Throwable
      StackMap stack: sun.nio.ch.NioSocketImpl int
        29: invokevirtual sun.nio.ch.NioSocketImpl.endAccept:(Z)V
        30: .line 763
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 31
            iload 9 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        31: .line 764
      StackMap locals:
      StackMap stack:
            aload 11
            athrow
        32: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 9 /* n */
            ifle 33
            iconst_1
            goto 34
      StackMap locals:
      StackMap stack: sun.nio.ch.NioSocketImpl
        33: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketImpl sun.nio.ch.NioSocketImpl java.io.FileDescriptor java.net.InetSocketAddress[] java.util.concurrent.locks.ReentrantLock int long int java.io.FileDescriptor
      StackMap stack: sun.nio.ch.NioSocketImpl int
        34: invokevirtual sun.nio.ch.NioSocketImpl.endAccept:(Z)V
        35: .line 763
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 39
            iload 9 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 39
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 10 // java.io.FileDescriptor fd
        end local 9 // int n
        36: .line 765
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketImpl sun.nio.ch.NioSocketImpl java.io.FileDescriptor java.net.InetSocketAddress[] java.util.concurrent.locks.ReentrantLock int long
      StackMap stack: java.lang.Throwable
            astore 12
        37: .line 766
            aload 5 /* acceptLock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        38: .line 767
            aload 12
            athrow
        39: .line 766
      StackMap locals:
      StackMap stack:
            aload 5 /* acceptLock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        40: .line 772
            aload 3 /* newfd */
            invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
            astore 9 /* localAddress */
        start local 9 // java.net.InetSocketAddress localAddress
        41: .line 773
            aload 3 /* newfd */
            iconst_1
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
        42: .line 774
            goto 46
        end local 9 // java.net.InetSocketAddress localAddress
      StackMap locals:
      StackMap stack: java.io.IOException
        43: astore 10 /* ioe */
        start local 10 // java.io.IOException ioe
        44: .line 775
            getstatic sun.nio.ch.NioSocketImpl.nd:Lsun/nio/ch/NativeDispatcher;
            aload 3 /* newfd */
            invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
        45: .line 776
            aload 10 /* ioe */
            athrow
        end local 10 // java.io.IOException ioe
        start local 9 // java.net.InetSocketAddress localAddress
        46: .line 780
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            aload 2 /* nsi */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 10
            monitorenter
        47: .line 781
            aload 2 /* nsi */
            aload 3 /* newfd */
            putfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
        48: .line 782
            aload 2 /* nsi */
            iconst_1
            putfield sun.nio.ch.NioSocketImpl.stream:Z
        49: .line 783
            aload 2 /* nsi */
            aload 2 /* nsi */
            invokestatic sun.nio.ch.NioSocketImpl$FileDescriptorCloser.create:(Lsun/nio/ch/NioSocketImpl;)Lsun/nio/ch/NioSocketImpl$FileDescriptorCloser;
            putfield sun.nio.ch.NioSocketImpl.closer:Lsun/nio/ch/NioSocketImpl$FileDescriptorCloser;
        50: .line 784
            aload 2 /* nsi */
            aload 9 /* localAddress */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            putfield sun.nio.ch.NioSocketImpl.localport:I
        51: .line 785
            aload 2 /* nsi */
            aload 4 /* isaa */
            iconst_0
            aaload
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            putfield sun.nio.ch.NioSocketImpl.address:Ljava/net/InetAddress;
        52: .line 786
            aload 2 /* nsi */
            aload 4 /* isaa */
            iconst_0
            aaload
            invokevirtual java.net.InetSocketAddress.getPort:()I
            putfield sun.nio.ch.NioSocketImpl.port:I
        53: .line 787
            aload 2 /* nsi */
            iconst_3
            putfield sun.nio.ch.NioSocketImpl.state:I
        54: .line 780
            aload 10
            monitorexit
        55: goto 58
      StackMap locals: sun.nio.ch.NioSocketImpl java.net.SocketImpl sun.nio.ch.NioSocketImpl java.io.FileDescriptor java.net.InetSocketAddress[] java.util.concurrent.locks.ReentrantLock int long java.net.InetSocketAddress java.lang.Object
      StackMap stack: java.lang.Throwable
        56: aload 10
            monitorexit
        57: athrow
        58: .line 789
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.net.InetSocketAddress localAddress
        end local 7 // long remainingNanos
        end local 6 // int timeout
        end local 5 // java.util.concurrent.locks.ReentrantLock acceptLock
        end local 4 // java.net.InetSocketAddress[] isaa
        end local 3 // java.io.FileDescriptor newfd
        end local 2 // sun.nio.ch.NioSocketImpl nsi
        end local 1 // java.net.SocketImpl si
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   59     0            this  Lsun/nio/ch/NioSocketImpl;
            0   59     1              si  Ljava/net/SocketImpl;
            1   59     2             nsi  Lsun/nio/ch/NioSocketImpl;
            4   59     3           newfd  Ljava/io/FileDescriptor;
            5   59     4            isaa  [Ljava/net/InetSocketAddress;
            6   59     5      acceptLock  Ljava/util/concurrent/locks/ReentrantLock;
            7   59     6         timeout  I
            8   59     7  remainingNanos  J
           15   36     9               n  I
           16   36    10              fd  Ljava/io/FileDescriptor;
           41   43     9    localAddress  Ljava/net/InetSocketAddress;
           46   59     9    localAddress  Ljava/net/InetSocketAddress;
           44   46    10             ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          16    26      26  any
          14    36      36  any
          40    42      43  Class java.io.IOException
          47    55      56  any
          56    57      56  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      si    

  protected java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 793
            new sun.nio.ch.NioSocketImpl$1
            dup
            aload 0 /* this */
            invokespecial sun.nio.ch.NioSocketImpl$1.<init>:(Lsun/nio/ch/NioSocketImpl;)V
            areturn
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/NioSocketImpl;

  protected java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 817
            new sun.nio.ch.NioSocketImpl$2
            dup
            aload 0 /* this */
            invokespecial sun.nio.ch.NioSocketImpl$2.<init>:(Lsun/nio/ch/NioSocketImpl;)V
            areturn
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/NioSocketImpl;

  protected int available();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 836
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 837
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpenAndConnected:()V
         2: .line 838
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.isInputClosed:Z
            ifeq 5
         3: .line 839
            aload 1
            monitorexit
         4: iconst_0
            ireturn
         5: .line 841
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.Net.available:(Ljava/io/FileDescriptor;)I
            aload 1
            monitorexit
         6: ireturn
         7: .line 836
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         8: athrow
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/nio/ch/NioSocketImpl;
      Exception table:
        from    to  target  type
           1     4       7  any
           5     6       7  any
           7     8       7  any
    Exceptions:
      throws java.io.IOException

  private boolean tryClose();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 850
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            iconst_4
            if_icmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 851
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readerThread:J
            lconst_0
            lcmp
            ifne 12
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.writerThread:J
            lconst_0
            lcmp
            ifne 12
         3: .line 853
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.closer:Lsun/nio/ch/NioSocketImpl$FileDescriptorCloser;
            invokevirtual sun.nio.ch.NioSocketImpl$FileDescriptorCloser.run:()V
         4: .line 854
            goto 10
      StackMap locals:
      StackMap stack: java.io.UncheckedIOException
         5: astore 1 /* ioe */
        start local 1 // java.io.UncheckedIOException ioe
         6: .line 855
            aload 1 /* ioe */
            invokevirtual java.io.UncheckedIOException.getCause:()Ljava/io/IOException;
            athrow
        end local 1 // java.io.UncheckedIOException ioe
         7: .line 856
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         8: .line 857
            aload 0 /* this */
            iconst_5
            putfield sun.nio.ch.NioSocketImpl.state:I
         9: .line 858
            aload 2
            athrow
        10: .line 857
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_5
            putfield sun.nio.ch.NioSocketImpl.state:I
        11: .line 859
            iconst_1
            ireturn
        12: .line 861
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/nio/ch/NioSocketImpl;
            6    7     1   ioe  Ljava/io/UncheckedIOException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.UncheckedIOException
           3     7       7  any
    Exceptions:
      throws java.io.IOException

  private void tryFinishClose();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 872
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.tryClose:()Z
            pop
         1: .line 873
            goto 3
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 874
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/ch/NioSocketImpl;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  protected void close();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 883
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 884
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.state:I
            istore 2 /* state */
        start local 2 // int state
         2: .line 885
            iload 2 /* state */
            iconst_4
            if_icmplt 5
         3: .line 886
            aload 1
            monitorexit
         4: return
         5: .line 887
      StackMap locals: java.lang.Object int
      StackMap stack:
            iload 2 /* state */
            ifne 9
         6: .line 889
            aload 0 /* this */
            iconst_5
            putfield sun.nio.ch.NioSocketImpl.state:I
         7: .line 890
            aload 1
            monitorexit
         8: return
         9: .line 892
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            putfield sun.nio.ch.NioSocketImpl.state:I
        10: .line 896
            getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
            astore 3 /* SO_LINGER */
        start local 3 // java.net.SocketOption SO_LINGER
        11: .line 897
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 3 /* SO_LINGER */
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ifeq 15
        12: .line 898
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            iconst_1
            invokestatic sun.nio.ch.Net.shutdown:(Ljava/io/FileDescriptor;I)V
        end local 3 // java.net.SocketOption SO_LINGER
        13: .line 900
            goto 15
      StackMap locals:
      StackMap stack: java.io.IOException
        14: pop
        15: .line 905
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.tryClose:()Z
            ifne 23
        16: .line 906
            getstatic sun.nio.ch.NioSocketImpl.nd:Lsun/nio/ch/NativeDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.NativeDispatcher.preClose:(Ljava/io/FileDescriptor;)V
        17: .line 907
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.readerThread:J
            lstore 3 /* reader */
        start local 3 // long reader
        18: .line 908
            lload 3 /* reader */
            lconst_0
            lcmp
            ifeq 20
        19: .line 909
            lload 3 /* reader */
            invokestatic sun.nio.ch.NativeThread.signal:(J)V
        20: .line 910
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.writerThread:J
            lstore 5 /* writer */
        start local 5 // long writer
        21: .line 911
            lload 5 /* writer */
            lconst_0
            lcmp
            ifeq 23
        22: .line 912
            lload 5 /* writer */
            invokestatic sun.nio.ch.NativeThread.signal:(J)V
        end local 5 // long writer
        end local 3 // long reader
        end local 2 // int state
        23: .line 883
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        24: goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: aload 1
            monitorexit
        26: athrow
        27: .line 915
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0       this  Lsun/nio/ch/NioSocketImpl;
            2   23     2      state  I
           11   13     3  SO_LINGER  Ljava/net/SocketOption<Ljava/lang/Integer;>;
           18   23     3     reader  J
           21   23     5     writer  J
      Exception table:
        from    to  target  type
          10    13      14  Class java.io.IOException
           1     4      25  any
           5     8      25  any
           9    24      25  any
          25    26      25  any
    Exceptions:
      throws java.io.IOException

  protected java.util.Set<java.net.SocketOption<?>> supportedOptions();
    descriptor: ()Ljava/util/Set;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 923
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.server:Z
            ifeq 1
            getstatic sun.nio.ch.NioSocketImpl.serverSocketOptions:Ljava/util/Set;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic sun.nio.ch.NioSocketImpl.clientSocketOptions:Ljava/util/Set;
      StackMap locals:
      StackMap stack: java.util.Set
         2: astore 1 /* options */
        start local 1 // java.util.Set options
         3: .line 924
            aload 1 /* options */
            ifnonnull 24
         4: .line 925
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* options */
         5: .line 926
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 927
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 928
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.server:Z
            ifeq 11
         8: .line 930
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 931
            aload 1 /* options */
            invokestatic sun.net.ext.ExtendedSocketOptions.serverSocketOptions:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        10: .line 932
            goto 17
        11: .line 933
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 934
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.SO_KEEPALIVE:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 935
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 936
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 937
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.TCP_NODELAY:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        16: .line 938
            aload 1 /* options */
            invokestatic sun.net.ext.ExtendedSocketOptions.clientSocketOptions:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        17: .line 940
      StackMap locals:
      StackMap stack:
            invokestatic sun.nio.ch.Net.isReusePortAvailable:()Z
            ifeq 19
        18: .line 941
            aload 1 /* options */
            getstatic java.net.StandardSocketOptions.SO_REUSEPORT:Ljava/net/SocketOption;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        19: .line 942
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 1 /* options */
        20: .line 943
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.server:Z
            ifeq 23
        21: .line 944
            aload 1 /* options */
            putstatic sun.nio.ch.NioSocketImpl.serverSocketOptions:Ljava/util/Set;
        22: .line 945
            goto 24
        23: .line 946
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            putstatic sun.nio.ch.NioSocketImpl.clientSocketOptions:Ljava/util/Set;
        24: .line 949
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            areturn
        end local 1 // java.util.Set options
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lsun/nio/ch/NioSocketImpl;
            3   25     1  options  Ljava/util/Set<Ljava/net/SocketOption<*>;>;
    Signature: ()Ljava/util/Set<Ljava/net/SocketOption<*>;>;

  protected <T> void setOption(java.net.SocketOption<T>, );
    descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.net.SocketOption opt
        start local 2 // java.lang.Object value
         0: .line 954
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.supportedOptions:()Ljava/util/Set;
            aload 1 /* opt */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 955
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "' not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 956
      StackMap locals:
      StackMap stack:
            aload 1 /* opt */
            invokeinterface java.net.SocketOption.type:()Ljava/lang/Class;
            aload 2 /* value */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 957
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid value '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 958
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         5: .line 959
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         6: .line 960
            aload 1 /* opt */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            if_acmpne 9
         7: .line 962
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.NioSocketImpl.family:()Ljava/net/ProtocolFamily;
            aload 1 /* opt */
            aload 2 /* value */
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
         8: .line 963
            goto 17
      StackMap locals: java.lang.Object
      StackMap stack:
         9: aload 1 /* opt */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            if_acmpne 16
        10: .line 964
            aload 2 /* value */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 4 /* b */
        start local 4 // boolean b
        11: .line 965
            invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
            ifeq 14
        12: .line 966
            aload 0 /* this */
            iload 4 /* b */
            putfield sun.nio.ch.NioSocketImpl.isReuseAddress:Z
        13: .line 967
            goto 17
        14: .line 968
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* opt */
            iload 4 /* b */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        end local 4 // boolean b
        15: .line 970
            goto 17
        16: .line 972
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* opt */
            aload 2 /* value */
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        17: .line 958
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 3
            monitorexit
        20: athrow
        21: .line 975
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // java.net.SocketOption opt
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lsun/nio/ch/NioSocketImpl;
            0   22     1    opt  Ljava/net/SocketOption<TT;>;
            0   22     2  value  TT;
           11   15     4      b  Z
      Exception table:
        from    to  target  type
           5    18      19  any
          19    20      19  any
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;TT;)V
    MethodParameters:
       Name  Flags
      opt    
      value  

  protected <T> T getOption(java.net.SocketOption<T>);
    descriptor: (Ljava/net/SocketOption;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.net.SocketOption opt
         0: .line 979
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.supportedOptions:()Ljava/util/Set;
            aload 1 /* opt */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 980
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* opt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "' not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 981
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 982
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         4: .line 983
            aload 1 /* opt */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            if_acmpne 7
         5: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.NioSocketImpl.family:()Ljava/net/ProtocolFamily;
            aload 1 /* opt */
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
            aload 2
            monitorexit
         6: areturn
         7: .line 985
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* opt */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            if_acmpne 13
         8: .line 986
            invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
            ifeq 11
         9: .line 987
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.isReuseAddress:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2
            monitorexit
        10: areturn
        11: .line 989
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* opt */
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
            aload 2
            monitorexit
        12: areturn
        13: .line 993
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* opt */
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
            aload 2
            monitorexit
        14: areturn
        15: .line 981
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        16: athrow
        end local 1 // java.net.SocketOption opt
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lsun/nio/ch/NioSocketImpl;
            0   17     1   opt  Ljava/net/SocketOption<TT;>;
      Exception table:
        from    to  target  type
           3     6      15  any
           7    10      15  any
          11    12      15  any
          13    14      15  any
          15    16      15  any
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;)TT;
    MethodParameters:
      Name  Flags
      opt   

  private boolean booleanValue(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.lang.Object value
        start local 2 // java.lang.String desc
         0: .line 999
            aload 1 /* value */
            instanceof java.lang.Boolean
            ifne 2
         1: .line 1000
            new java.net.SocketException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad value for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* desc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1001
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 2 // java.lang.String desc
        end local 1 // java.lang.Object value
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/nio/ch/NioSocketImpl;
            0    3     1  value  Ljava/lang/Object;
            0    3     2   desc  Ljava/lang/String;
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
       Name  Flags
      value  
      desc   

  private int intValue(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // java.lang.Object value
        start local 2 // java.lang.String desc
         0: .line 1005
            aload 1 /* value */
            instanceof java.lang.Integer
            ifne 2
         1: .line 1006
            new java.net.SocketException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad value for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* desc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1007
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // java.lang.String desc
        end local 1 // java.lang.Object value
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/nio/ch/NioSocketImpl;
            0    3     1  value  Ljava/lang/Object;
            0    3     2   desc  Ljava/lang/String;
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
       Name  Flags
      value  
      desc   

  public void setOption(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // int opt
        start local 2 // java.lang.Object value
         0: .line 1012
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 1013
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         2: .line 1015
            iload 1 /* opt */
            lookupswitch { // 10
                    1: 17
                    3: 14
                    4: 36
                    8: 30
                   14: 42
                  128: 3
                 4097: 20
                 4098: 25
                 4099: 33
                 4102: 9
              default: 47
          }
         3: .line 1019
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* value */
            instanceof java.lang.Boolean
            ifeq 6
            aload 2 /* value */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 6
         4: .line 1020
            iconst_m1
            istore 4 /* i */
        start local 4 // int i
         5: .line 1021
            goto 7
        end local 4 // int i
         6: .line 1022
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "SO_LINGER"
            invokevirtual sun.nio.ch.NioSocketImpl.intValue:(Ljava/lang/Object;Ljava/lang/String;)I
            istore 4 /* i */
        start local 4 // int i
         7: .line 1024
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
            iload 4 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
         8: .line 1025
            goto 52
        end local 4 // int i
         9: .line 1028
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "SO_TIMEOUT"
            invokevirtual sun.nio.ch.NioSocketImpl.intValue:(Ljava/lang/Object;Ljava/lang/String;)I
            istore 4 /* i */
        start local 4 // int i
        10: .line 1029
            iload 4 /* i */
            ifge 12
        11: .line 1030
            new java.lang.IllegalArgumentException
            dup
            ldc "timeout < 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 1031
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* i */
            putfield sun.nio.ch.NioSocketImpl.timeout:I
        13: .line 1032
            goto 52
        end local 4 // int i
        14: .line 1035
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "IP_TOS"
            invokevirtual sun.nio.ch.NioSocketImpl.intValue:(Ljava/lang/Object;Ljava/lang/String;)I
            istore 4 /* i */
        start local 4 // int i
        15: .line 1036
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.NioSocketImpl.family:()Ljava/net/ProtocolFamily;
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            iload 4 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
        16: .line 1037
            goto 52
        end local 4 // int i
        17: .line 1040
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "TCP_NODELAY"
            invokevirtual sun.nio.ch.NioSocketImpl.booleanValue:(Ljava/lang/Object;Ljava/lang/String;)Z
            istore 4 /* b */
        start local 4 // boolean b
        18: .line 1041
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.TCP_NODELAY:Ljava/net/SocketOption;
            iload 4 /* b */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        19: .line 1042
            goto 52
        end local 4 // boolean b
        20: .line 1045
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "SO_SNDBUF"
            invokevirtual sun.nio.ch.NioSocketImpl.intValue:(Ljava/lang/Object;Ljava/lang/String;)I
            istore 4 /* i */
        start local 4 // int i
        21: .line 1046
            iload 4 /* i */
            ifgt 23
        22: .line 1047
            new java.net.SocketException
            dup
            ldc "SO_SNDBUF <= 0"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 1048
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            iload 4 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        24: .line 1049
            goto 52
        end local 4 // int i
        25: .line 1052
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "SO_RCVBUF"
            invokevirtual sun.nio.ch.NioSocketImpl.intValue:(Ljava/lang/Object;Ljava/lang/String;)I
            istore 4 /* i */
        start local 4 // int i
        26: .line 1053
            iload 4 /* i */
            ifgt 28
        27: .line 1054
            new java.net.SocketException
            dup
            ldc "SO_RCVBUF <= 0"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 1055
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            iload 4 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        29: .line 1056
            goto 52
        end local 4 // int i
        30: .line 1059
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "SO_KEEPALIVE"
            invokevirtual sun.nio.ch.NioSocketImpl.booleanValue:(Ljava/lang/Object;Ljava/lang/String;)Z
            istore 4 /* b */
        start local 4 // boolean b
        31: .line 1060
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_KEEPALIVE:Ljava/net/SocketOption;
            iload 4 /* b */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        32: .line 1061
            goto 52
        end local 4 // boolean b
        33: .line 1064
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "SO_OOBINLINE"
            invokevirtual sun.nio.ch.NioSocketImpl.booleanValue:(Ljava/lang/Object;Ljava/lang/String;)Z
            istore 4 /* b */
        start local 4 // boolean b
        34: .line 1065
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic sun.nio.ch.ExtendedSocketOption.SO_OOBINLINE:Ljava/net/SocketOption;
            iload 4 /* b */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        35: .line 1066
            goto 52
        end local 4 // boolean b
        36: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "SO_REUSEADDR"
            invokevirtual sun.nio.ch.NioSocketImpl.booleanValue:(Ljava/lang/Object;Ljava/lang/String;)Z
            istore 4 /* b */
        start local 4 // boolean b
        37: .line 1070
            invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
            ifeq 40
        38: .line 1071
            aload 0 /* this */
            iload 4 /* b */
            putfield sun.nio.ch.NioSocketImpl.isReuseAddress:Z
        39: .line 1072
            goto 52
        40: .line 1073
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            iload 4 /* b */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        41: .line 1075
            goto 52
        end local 4 // boolean b
        42: .line 1078
      StackMap locals:
      StackMap stack:
            invokestatic sun.nio.ch.Net.isReusePortAvailable:()Z
            ifne 44
        43: .line 1079
            new java.net.SocketException
            dup
            ldc "SO_REUSEPORT not supported"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        44: .line 1080
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            ldc "SO_REUSEPORT"
            invokevirtual sun.nio.ch.NioSocketImpl.booleanValue:(Ljava/lang/Object;Ljava/lang/String;)Z
            istore 4 /* b */
        start local 4 // boolean b
        45: .line 1081
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_REUSEPORT:Ljava/net/SocketOption;
            iload 4 /* b */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
        46: .line 1082
            goto 52
        end local 4 // boolean b
        47: .line 1085
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* opt */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        48: .line 1087
      StackMap locals:
      StackMap stack: java.net.SocketException
            astore 4 /* e */
        start local 4 // java.net.SocketException e
        49: .line 1088
            aload 4 /* e */
            athrow
        end local 4 // java.net.SocketException e
        50: .line 1089
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        51: .line 1090
            new java.net.SocketException
            dup
            aload 4 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.Exception e
        52: .line 1012
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        53: goto 56
      StackMap locals:
      StackMap stack: java.lang.Throwable
        54: aload 3
            monitorexit
        55: athrow
        56: .line 1093
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object value
        end local 1 // int opt
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   57     0   this  Lsun/nio/ch/NioSocketImpl;
            0   57     1    opt  I
            0   57     2  value  Ljava/lang/Object;
            5    6     4      i  I
            7    9     4      i  I
           10   14     4      i  I
           15   17     4      i  I
           18   20     4      b  Z
           21   25     4      i  I
           26   30     4      i  I
           31   33     4      b  Z
           34   36     4      b  Z
           37   42     4      b  Z
           45   47     4      b  Z
           49   50     4      e  Ljava/net/SocketException;
           51   52     4      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2    48      48  Class java.net.SocketException
           2    48      50  Class java.lang.IllegalArgumentException
           2    48      50  Class java.io.IOException
           1    53      54  any
          54    55      54  any
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
       Name  Flags
      opt    
      value  

  public java.lang.Object getOption(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // int opt
         0: .line 1097
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1098
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpen:()V
         2: .line 1100
            iload 1 /* opt */
            lookupswitch { // 11
                    1: 6
                    3: 36
                    4: 20
                    8: 39
                   14: 42
                   15: 27
                  128: 12
                 4097: 30
                 4098: 33
                 4099: 9
                 4102: 3
              default: 47
          }
         3: .line 1102
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.timeout:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         4: aload 2
            monitorexit
         5: areturn
         6: .line 1104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.TCP_NODELAY:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
         7: aload 2
            monitorexit
         8: areturn
         9: .line 1106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic sun.nio.ch.ExtendedSocketOption.SO_OOBINLINE:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
        10: aload 2
            monitorexit
        11: areturn
        12: .line 1109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 3 /* i */
        start local 3 // int i
        13: .line 1110
            iload 3 /* i */
            iconst_m1
            if_icmpne 17
        14: .line 1111
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
        15: aload 2
            monitorexit
        16: areturn
        17: .line 1113
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        18: aload 2
            monitorexit
        19: areturn
        end local 3 // int i
        20: .line 1117
      StackMap locals:
      StackMap stack:
            invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
            ifeq 24
        21: .line 1118
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.isReuseAddress:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
        22: aload 2
            monitorexit
        23: areturn
        24: .line 1120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
        25: aload 2
            monitorexit
        26: areturn
        27: .line 1123
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
        28: aload 2
            monitorexit
        29: areturn
        30: .line 1125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
        31: aload 2
            monitorexit
        32: areturn
        33: .line 1127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
        34: aload 2
            monitorexit
        35: areturn
        36: .line 1129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.NioSocketImpl.family:()Ljava/net/ProtocolFamily;
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
        37: aload 2
            monitorexit
        38: areturn
        39: .line 1131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_KEEPALIVE:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
        40: aload 2
            monitorexit
        41: areturn
        42: .line 1133
      StackMap locals:
      StackMap stack:
            invokestatic sun.nio.ch.Net.isReusePortAvailable:()Z
            ifne 44
        43: .line 1134
            new java.net.SocketException
            dup
            ldc "SO_REUSEPORT not supported"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        44: .line 1135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            getstatic java.net.StandardSocketOptions.SO_REUSEPORT:Ljava/net/SocketOption;
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
        45: aload 2
            monitorexit
        46: areturn
        47: .line 1137
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* opt */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        48: .line 1139
      StackMap locals:
      StackMap stack: java.net.SocketException
            astore 3 /* e */
        start local 3 // java.net.SocketException e
        49: .line 1140
            aload 3 /* e */
            athrow
        end local 3 // java.net.SocketException e
        50: .line 1141
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        51: .line 1142
            new java.net.SocketException
            dup
            aload 3 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.Exception e
        52: .line 1097
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        53: athrow
        end local 1 // int opt
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   54     0  this  Lsun/nio/ch/NioSocketImpl;
            0   54     1   opt  I
           13   20     3     i  I
           49   50     3     e  Ljava/net/SocketException;
           51   52     3     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     4      48  Class java.net.SocketException
           6     7      48  Class java.net.SocketException
           9    10      48  Class java.net.SocketException
          12    15      48  Class java.net.SocketException
          17    18      48  Class java.net.SocketException
          20    22      48  Class java.net.SocketException
          24    25      48  Class java.net.SocketException
          27    28      48  Class java.net.SocketException
          30    31      48  Class java.net.SocketException
          33    34      48  Class java.net.SocketException
          36    37      48  Class java.net.SocketException
          39    40      48  Class java.net.SocketException
          42    45      48  Class java.net.SocketException
          47    48      48  Class java.net.SocketException
           2     4      50  Class java.lang.IllegalArgumentException
           6     7      50  Class java.lang.IllegalArgumentException
           9    10      50  Class java.lang.IllegalArgumentException
          12    15      50  Class java.lang.IllegalArgumentException
          17    18      50  Class java.lang.IllegalArgumentException
          20    22      50  Class java.lang.IllegalArgumentException
          24    25      50  Class java.lang.IllegalArgumentException
          27    28      50  Class java.lang.IllegalArgumentException
          30    31      50  Class java.lang.IllegalArgumentException
          33    34      50  Class java.lang.IllegalArgumentException
          36    37      50  Class java.lang.IllegalArgumentException
          39    40      50  Class java.lang.IllegalArgumentException
          42    45      50  Class java.lang.IllegalArgumentException
          47    48      50  Class java.lang.IllegalArgumentException
           2     4      50  Class java.io.IOException
           6     7      50  Class java.io.IOException
           9    10      50  Class java.io.IOException
          12    15      50  Class java.io.IOException
          17    18      50  Class java.io.IOException
          20    22      50  Class java.io.IOException
          24    25      50  Class java.io.IOException
          27    28      50  Class java.io.IOException
          30    31      50  Class java.io.IOException
          33    34      50  Class java.io.IOException
          36    37      50  Class java.io.IOException
          39    40      50  Class java.io.IOException
          42    45      50  Class java.io.IOException
          47    48      50  Class java.io.IOException
           1     5      52  any
           6     8      52  any
           9    11      52  any
          12    16      52  any
          17    19      52  any
          20    23      52  any
          24    26      52  any
          27    29      52  any
          30    32      52  any
          33    35      52  any
          36    38      52  any
          39    41      52  any
          42    46      52  any
          47    53      52  any
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      opt   

  protected void shutdownInput();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 1149
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1150
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpenAndConnected:()V
         2: .line 1151
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.isInputClosed:Z
            ifne 5
         3: .line 1152
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            iconst_0
            invokestatic sun.nio.ch.Net.shutdown:(Ljava/io/FileDescriptor;I)V
         4: .line 1153
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.NioSocketImpl.isInputClosed:Z
         5: .line 1149
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 1156
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/nio/ch/NioSocketImpl;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.io.IOException

  protected void shutdownOutput();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 1160
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1161
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.ensureOpenAndConnected:()V
         2: .line 1162
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.isOutputClosed:Z
            ifne 5
         3: .line 1163
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            iconst_1
            invokestatic sun.nio.ch.Net.shutdown:(Ljava/io/FileDescriptor;I)V
         4: .line 1164
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.NioSocketImpl.isOutputClosed:Z
         5: .line 1160
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 1167
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/nio/ch/NioSocketImpl;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.io.IOException

  protected boolean supportsUrgentData();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.NioSocketImpl this
         0: .line 1171
            iconst_1
            ireturn
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/NioSocketImpl;

  protected void sendUrgentData(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // sun.nio.ch.NioSocketImpl this
        start local 1 // int data
         0: .line 1176
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1178
            iconst_0
            istore 2 /* n */
        start local 2 // int n
         2: .line 1179
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.beginWrite:()Ljava/io/FileDescriptor;
            astore 3 /* fd */
        start local 3 // java.io.FileDescriptor fd
         3: .line 1182
      StackMap locals: int java.io.FileDescriptor
      StackMap stack:
            aload 3 /* fd */
            iload 1 /* data */
            i2b
            invokestatic sun.nio.ch.Net.sendOOB:(Ljava/io/FileDescriptor;B)I
            istore 2 /* n */
         4: .line 1183
            iload 2 /* n */
            bipush -3
            if_icmpne 5
            aload 0 /* this */
            invokevirtual sun.nio.ch.NioSocketImpl.isOpen:()Z
            ifne 3
         5: .line 1184
      StackMap locals:
      StackMap stack:
            iload 2 /* n */
            bipush -2
            if_icmpne 12
         6: .line 1185
            new java.net.SocketException
            dup
            ldc "No buffer space available"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1187
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
         8: .line 1188
            aload 0 /* this */
            iload 2 /* n */
            ifle 9
            iconst_1
            goto 10
      StackMap locals: sun.nio.ch.NioSocketImpl int int java.io.FileDescriptor java.lang.Throwable
      StackMap stack: sun.nio.ch.NioSocketImpl
         9: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl int int java.io.FileDescriptor java.lang.Throwable
      StackMap stack: sun.nio.ch.NioSocketImpl int
        10: invokevirtual sun.nio.ch.NioSocketImpl.endWrite:(Z)V
        11: .line 1189
            aload 4
            athrow
        12: .line 1188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* n */
            ifle 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack: sun.nio.ch.NioSocketImpl
        13: iconst_0
      StackMap locals: sun.nio.ch.NioSocketImpl int int java.io.FileDescriptor
      StackMap stack: sun.nio.ch.NioSocketImpl int
        14: invokevirtual sun.nio.ch.NioSocketImpl.endWrite:(Z)V
        end local 3 // java.io.FileDescriptor fd
        end local 2 // int n
        15: .line 1190
            goto 19
      StackMap locals: sun.nio.ch.NioSocketImpl int
      StackMap stack: java.lang.Throwable
        16: astore 5
        17: .line 1191
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 1192
            aload 5
            athrow
        19: .line 1191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.NioSocketImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        20: .line 1193
            return
        end local 1 // int data
        end local 0 // sun.nio.ch.NioSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lsun/nio/ch/NioSocketImpl;
            0   21     1  data  I
            2   15     2     n  I
            3   15     3    fd  Ljava/io/FileDescriptor;
      Exception table:
        from    to  target  type
           3     7       7  any
           1    16      16  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  private static long tryLock(java.util.concurrent.locks.ReentrantLock, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/locks/ReentrantLock;JLjava/util/concurrent/TimeUnit;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // java.util.concurrent.locks.ReentrantLock lock
        start local 1 // long timeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 1252
            getstatic sun.nio.ch.NioSocketImpl.$assertionsDisabled:Z
            ifne 1
            lload 1 /* timeout */
            lconst_0
            lcmp
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1253
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* interrupted */
        start local 4 // boolean interrupted
         2: .line 1254
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            lload 1 /* timeout */
            aload 3 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            lstore 5 /* nanos */
        start local 5 // long nanos
         3: .line 1255
            lload 5 /* nanos */
            lstore 7 /* remainingNanos */
        start local 7 // long remainingNanos
         4: .line 1256
            invokestatic java.lang.System.nanoTime:()J
            lstore 9 /* startNanos */
        start local 9 // long startNanos
         5: .line 1257
            iconst_0
            istore 11 /* acquired */
        start local 11 // boolean acquired
         6: .line 1258
            goto 12
         7: .line 1260
      StackMap locals: java.util.concurrent.locks.ReentrantLock long java.util.concurrent.TimeUnit int long long long int
      StackMap stack:
            aload 0 /* lock */
            lload 7 /* remainingNanos */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
            istore 11 /* acquired */
         8: .line 1261
            goto 11
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         9: pop
        10: .line 1262
            iconst_1
            istore 4 /* interrupted */
        11: .line 1264
      StackMap locals:
      StackMap stack:
            lload 5 /* nanos */
            invokestatic java.lang.System.nanoTime:()J
            lload 9 /* startNanos */
            lsub
            lsub
            lstore 7 /* remainingNanos */
        12: .line 1258
      StackMap locals:
      StackMap stack:
            iload 11 /* acquired */
            ifne 13
            lload 7 /* remainingNanos */
            lconst_0
            lcmp
            ifgt 7
        13: .line 1266
      StackMap locals:
      StackMap stack:
            iload 11 /* acquired */
            ifeq 15
            lload 7 /* remainingNanos */
            lconst_0
            lcmp
            ifgt 15
        14: .line 1267
            aload 0 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        15: .line 1268
      StackMap locals:
      StackMap stack:
            iload 4 /* interrupted */
            ifeq 17
        16: .line 1269
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        17: .line 1270
      StackMap locals:
      StackMap stack:
            lload 7 /* remainingNanos */
            lreturn
        end local 11 // boolean acquired
        end local 9 // long startNanos
        end local 7 // long remainingNanos
        end local 5 // long nanos
        end local 4 // boolean interrupted
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long timeout
        end local 0 // java.util.concurrent.locks.ReentrantLock lock
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            lock  Ljava/util/concurrent/locks/ReentrantLock;
            0   18     1         timeout  J
            0   18     3            unit  Ljava/util/concurrent/TimeUnit;
            2   18     4     interrupted  Z
            3   18     5           nanos  J
            4   18     7  remainingNanos  J
            5   18     9      startNanos  J
            6   18    11        acquired  Z
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      lock     
      timeout  
      unit     

  private static java.net.ProtocolFamily family();
    descriptor: ()Ljava/net/ProtocolFamily;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1277
            invokestatic sun.nio.ch.Net.isIPv6Available:()Z
            ifeq 2
         1: .line 1278
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            areturn
         2: .line 1280
      StackMap locals:
      StackMap stack:
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.io.FileDescriptor access$0(sun.nio.ch.NioSocketImpl);
    descriptor: (Lsun/nio/ch/NioSocketImpl;)Ljava/io/FileDescriptor;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 81
            aload 0
            getfield sun.nio.ch.NioSocketImpl.fd:Ljava/io/FileDescriptor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "NioSocketImpl.java"
NestMembers:
  sun.nio.ch.NioSocketImpl$1  sun.nio.ch.NioSocketImpl$2  sun.nio.ch.NioSocketImpl$FileDescriptorCloser
InnerClasses:
  sun.nio.ch.NioSocketImpl$1
  sun.nio.ch.NioSocketImpl$2
  private FileDescriptorCloser = sun.nio.ch.NioSocketImpl$FileDescriptorCloser of sun.nio.ch.NioSocketImpl