class sun.nio.ch.SocketAdaptor extends java.net.Socket
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.nio.ch.SocketAdaptor
  super_class: java.net.Socket
{
  private final sun.nio.ch.SocketChannelImpl sc;
    descriptor: Lsun/nio/ch/SocketChannelImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private java.io.InputStream socketInputStream;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 64
            ldc Lsun/nio/ch/SocketAdaptor;
            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.SocketAdaptor.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(sun.nio.ch.SocketChannelImpl);
    descriptor: (Lsun/nio/ch/SocketChannelImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // sun.nio.ch.SocketChannelImpl sc
         0: .line 75
            aload 0 /* this */
            aconst_null
            invokespecial java.net.Socket.<init>:(Ljava/net/SocketImpl;)V
         1: .line 72
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.SocketAdaptor.timeout:I
         2: .line 239
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.SocketAdaptor.socketInputStream:Ljava/io/InputStream;
         3: .line 76
            aload 0 /* this */
            aload 1 /* sc */
            putfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
         4: .line 77
            return
        end local 1 // sun.nio.ch.SocketChannelImpl sc
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/nio/ch/SocketAdaptor;
            0    5     1    sc  Lsun/nio/ch/SocketChannelImpl;
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      sc    

  public static java.net.Socket create(sun.nio.ch.SocketChannelImpl);
    descriptor: (Lsun/nio/ch/SocketChannelImpl;)Ljava/net/Socket;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketChannelImpl sc
         0: .line 81
            new sun.nio.ch.SocketAdaptor
            dup
            aload 0 /* sc */
            invokespecial sun.nio.ch.SocketAdaptor.<init>:(Lsun/nio/ch/SocketChannelImpl;)V
         1: areturn
         2: .line 82
      StackMap locals:
      StackMap stack: java.net.SocketException
            pop
         3: .line 83
            new java.lang.InternalError
            dup
            ldc "Should not reach here"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // sun.nio.ch.SocketChannelImpl sc
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    sc  Lsun/nio/ch/SocketChannelImpl;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.SocketException
    MethodParameters:
      Name  Flags
      sc    

  public java.nio.channels.SocketChannel getChannel();
    descriptor: ()Ljava/nio/channels/SocketChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 88
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            areturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;

  public void connect(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // java.net.SocketAddress remote
         0: .line 94
            aload 0 /* this */
            aload 1 /* remote */
            iconst_0
            invokevirtual sun.nio.ch.SocketAdaptor.connect:(Ljava/net/SocketAddress;I)V
         1: .line 95
            return
        end local 1 // java.net.SocketAddress remote
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/nio/ch/SocketAdaptor;
            0    2     1  remote  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      remote  

  public void connect(java.net.SocketAddress, int);
    descriptor: (Ljava/net/SocketAddress;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // java.net.SocketAddress remote
        start local 2 // int timeout
         0: .line 98
            aload 1 /* remote */
            ifnonnull 2
         1: .line 99
            new java.lang.IllegalArgumentException
            dup
            ldc "connect: The address can't be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 100
      StackMap locals:
      StackMap stack:
            iload 2 /* timeout */
            ifge 4
         3: .line 101
            new java.lang.IllegalArgumentException
            dup
            ldc "connect: timeout can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.blockingLock:()Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         5: .line 104
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
            ifne 7
         6: .line 105
            new java.nio.channels.IllegalBlockingModeException
            dup
            invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
            athrow
         7: .line 108
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 2 /* timeout */
            ifne 11
         8: .line 109
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            aload 1 /* remote */
            invokevirtual sun.nio.ch.SocketChannelImpl.connect:(Ljava/net/SocketAddress;)Z
            pop
         9: .line 110
            aload 3
            monitorexit
        10: return
        11: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            iconst_0
            invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        12: .line 115
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            aload 1 /* remote */
            invokevirtual sun.nio.ch.SocketChannelImpl.connect:(Ljava/net/SocketAddress;)Z
            ifeq 18
        13: .line 136
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            iconst_1
            invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        14: .line 137
            goto 16
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedChannelException
        15: pop
        16: .line 116
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        17: return
        18: .line 117
      StackMap locals:
      StackMap stack:
            iload 2 /* timeout */
            i2l
            lstore 4 /* to */
        start local 4 // long to
        19: .line 119
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
            ifne 21
        20: .line 120
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
        21: .line 121
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 6 /* st */
        start local 6 // long st
        22: .line 123
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            getstatic sun.nio.ch.Net.POLLCONN:S
            lload 4 /* to */
            invokevirtual sun.nio.ch.SocketChannelImpl.poll:(IJ)I
            istore 8 /* result */
        start local 8 // int result
        23: .line 124
            iload 8 /* result */
            ifle 25
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.finishConnect:()Z
            ifeq 25
        24: .line 125
            goto 36
        25: .line 126
      StackMap locals: long int
      StackMap stack:
            lload 4 /* to */
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 6 /* st */
            lsub
            lsub
            lstore 4 /* to */
        26: .line 127
            lload 4 /* to */
            lconst_0
            lcmp
            ifgt 19
        27: .line 129
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
        28: .line 130
            goto 30
      StackMap locals:
      StackMap stack: java.io.IOException
        29: pop
        30: .line 131
      StackMap locals:
      StackMap stack:
            new java.net.SocketTimeoutException
            dup
            invokespecial java.net.SocketTimeoutException.<init>:()V
            athrow
        end local 8 // int result
        end local 6 // long st
        end local 4 // long to
        31: .line 134
      StackMap locals: sun.nio.ch.SocketAdaptor java.net.SocketAddress int java.lang.Object
      StackMap stack: java.lang.Throwable
            astore 9
        32: .line 136
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            iconst_1
            invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        33: .line 137
            goto 35
      StackMap locals: sun.nio.ch.SocketAdaptor java.net.SocketAddress int java.lang.Object top top top top top java.lang.Throwable
      StackMap stack: java.nio.channels.ClosedChannelException
        34: pop
        35: .line 138
      StackMap locals:
      StackMap stack:
            aload 9
            athrow
        36: .line 136
      StackMap locals: sun.nio.ch.SocketAdaptor java.net.SocketAddress int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            iconst_1
            invokevirtual sun.nio.ch.SocketChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        37: .line 137
            goto 42
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedChannelException
        38: pop
        39: .line 140
            goto 42
      StackMap locals:
      StackMap stack: java.lang.Exception
        40: astore 4 /* x */
        start local 4 // java.lang.Exception x
        41: .line 141
            aload 4 /* x */
            iconst_1
            invokestatic sun.nio.ch.Net.translateException:(Ljava/lang/Exception;Z)V
        end local 4 // java.lang.Exception x
        42: .line 103
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        43: goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        44: aload 3
            monitorexit
        45: athrow
        46: .line 145
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int timeout
        end local 1 // java.net.SocketAddress remote
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   47     0     this  Lsun/nio/ch/SocketAdaptor;
            0   47     1   remote  Ljava/net/SocketAddress;
            0   47     2  timeout  I
           19   31     4       to  J
           22   31     6       st  J
           23   31     8   result  I
           41   42     4        x  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          13    14      15  Class java.nio.channels.ClosedChannelException
          27    28      29  Class java.io.IOException
          12    13      31  any
          18    31      31  any
          32    33      34  Class java.nio.channels.ClosedChannelException
          36    37      38  Class java.nio.channels.ClosedChannelException
           7     9      40  Class java.lang.Exception
          11    16      40  Class java.lang.Exception
          18    39      40  Class java.lang.Exception
           5    10      44  any
          11    17      44  any
          18    43      44  any
          44    45      44  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      remote   
      timeout  

  public void bind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // java.net.SocketAddress local
         0: .line 149
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            aload 1 /* local */
            invokevirtual sun.nio.ch.SocketChannelImpl.bind:(Ljava/net/SocketAddress;)Ljava/nio/channels/SocketChannel;
            pop
         1: .line 150
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 2 /* x */
        start local 2 // java.lang.Exception x
         3: .line 151
            aload 2 /* x */
            invokestatic sun.nio.ch.Net.translateException:(Ljava/lang/Exception;)V
        end local 2 // java.lang.Exception x
         4: .line 153
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.net.SocketAddress local
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/nio/ch/SocketAdaptor;
            0    5     1  local  Ljava/net/SocketAddress;
            3    4     2      x  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      local  

  public java.net.InetAddress getInetAddress();
    descriptor: ()Ljava/net/InetAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 156
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.remoteAddress:()Ljava/net/SocketAddress;
            astore 1 /* remote */
        start local 1 // java.net.SocketAddress remote
         1: .line 157
            aload 1 /* remote */
            ifnonnull 3
         2: .line 158
            aconst_null
            areturn
         3: .line 160
      StackMap locals: java.net.SocketAddress
      StackMap stack:
            aload 1 /* remote */
            checkcast java.net.InetSocketAddress
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            areturn
        end local 1 // java.net.SocketAddress remote
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/nio/ch/SocketAdaptor;
            1    4     1  remote  Ljava/net/SocketAddress;

  public java.net.InetAddress getLocalAddress();
    descriptor: ()Ljava/net/InetAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 165
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
            ifeq 4
         1: .line 166
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.localAddress:()Ljava/net/InetSocketAddress;
            astore 1 /* local */
        start local 1 // java.net.InetSocketAddress local
         2: .line 167
            aload 1 /* local */
            ifnull 4
         3: .line 168
            aload 1 /* local */
            invokestatic sun.nio.ch.Net.getRevealedLocalAddress:(Ljava/net/InetSocketAddress;)Ljava/net/InetSocketAddress;
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            areturn
        end local 1 // java.net.InetSocketAddress local
         4: .line 170
      StackMap locals:
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            iconst_0
            invokespecial java.net.InetSocketAddress.<init>:(I)V
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            areturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/nio/ch/SocketAdaptor;
            2    4     1  local  Ljava/net/InetSocketAddress;

  public int getPort();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 174
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.remoteAddress:()Ljava/net/SocketAddress;
            astore 1 /* remote */
        start local 1 // java.net.SocketAddress remote
         1: .line 175
            aload 1 /* remote */
            ifnonnull 3
         2: .line 176
            iconst_0
            ireturn
         3: .line 178
      StackMap locals: java.net.SocketAddress
      StackMap stack:
            aload 1 /* remote */
            checkcast java.net.InetSocketAddress
            invokevirtual java.net.InetSocketAddress.getPort:()I
            ireturn
        end local 1 // java.net.SocketAddress remote
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/nio/ch/SocketAdaptor;
            1    4     1  remote  Ljava/net/SocketAddress;

  public int getLocalPort();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 183
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.localAddress:()Ljava/net/InetSocketAddress;
            astore 1 /* local */
        start local 1 // java.net.SocketAddress local
         1: .line 184
            aload 1 /* local */
            ifnonnull 3
         2: .line 185
            iconst_m1
            ireturn
         3: .line 187
      StackMap locals: java.net.SocketAddress
      StackMap stack:
            aload 1 /* local */
            checkcast java.net.InetSocketAddress
            invokevirtual java.net.InetSocketAddress.getPort:()I
            ireturn
        end local 1 // java.net.SocketAddress local
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/nio/ch/SocketAdaptor;
            1    4     1  local  Ljava/net/SocketAddress;

  public java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 242
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
            ifne 2
         1: .line 243
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
            ifne 4
         3: .line 245
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isInputOpen:()Z
            ifne 6
         5: .line 247
            new java.net.SocketException
            dup
            ldc "Socket input is shutdown"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.socketInputStream:Ljava/io/InputStream;
            ifnonnull 13
         7: .line 250
            aload 0 /* this */
         8: .line 251
            new sun.nio.ch.SocketAdaptor$1
            dup
            aload 0 /* this */
            invokespecial sun.nio.ch.SocketAdaptor$1.<init>:(Lsun/nio/ch/SocketAdaptor;)V
         9: .line 250
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.io.InputStream
            putfield sun.nio.ch.SocketAdaptor.socketInputStream:Ljava/io/InputStream;
        10: .line 256
            goto 13
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
        11: astore 1 /* e */
        start local 1 // java.security.PrivilegedActionException e
        12: .line 257
            aload 1 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 1 // java.security.PrivilegedActionException e
        13: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.socketInputStream:Ljava/io/InputStream;
            areturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/nio/ch/SocketAdaptor;
           12   13     1     e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           7    10      11  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException

  public java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 264
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
            ifne 2
         1: .line 265
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
            ifne 4
         3: .line 267
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isOutputOpen:()Z
            ifne 6
         5: .line 269
            new java.net.SocketException
            dup
            ldc "Socket output is shutdown"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 270
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* os */
        start local 1 // java.io.OutputStream os
         7: .line 273
            new sun.nio.ch.SocketAdaptor$2
            dup
            aload 0 /* this */
            invokespecial sun.nio.ch.SocketAdaptor$2.<init>:(Lsun/nio/ch/SocketAdaptor;)V
         8: .line 272
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.io.OutputStream
            astore 1 /* os */
         9: .line 278
            goto 12
      StackMap locals: sun.nio.ch.SocketAdaptor java.io.OutputStream
      StackMap stack: java.security.PrivilegedActionException
        10: astore 2 /* e */
        start local 2 // java.security.PrivilegedActionException e
        11: .line 279
            aload 2 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 2 // java.security.PrivilegedActionException e
        12: .line 281
      StackMap locals:
      StackMap stack:
            aload 1 /* os */
            areturn
        end local 1 // java.io.OutputStream os
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/nio/ch/SocketAdaptor;
            7   13     1    os  Ljava/io/OutputStream;
           11   12     2     e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           7     9      10  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException

  private void setBooleanOption(java.net.SocketOption<java.lang.Boolean>, );
    descriptor: (Ljava/net/SocketOption;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // java.net.SocketOption name
        start local 2 // boolean value
         0: .line 288
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            aload 1 /* name */
            iload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual sun.nio.ch.SocketChannelImpl.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
            pop
         1: .line 289
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 3 /* x */
        start local 3 // java.io.IOException x
         3: .line 290
            aload 3 /* x */
            invokestatic sun.nio.ch.Net.translateToSocketException:(Ljava/lang/Exception;)V
        end local 3 // java.io.IOException x
         4: .line 292
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean value
        end local 1 // java.net.SocketOption name
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/nio/ch/SocketAdaptor;
            0    5     1   name  Ljava/net/SocketOption<Ljava/lang/Boolean;>;
            0    5     2  value  Z
            3    4     3      x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.net.SocketException
    Signature: (Ljava/net/SocketOption<Ljava/lang/Boolean;>;Z)V
    MethodParameters:
       Name  Flags
      name   
      value  

  private void setIntOption(java.net.SocketOption<java.lang.Integer>, );
    descriptor: (Ljava/net/SocketOption;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // java.net.SocketOption name
        start local 2 // int value
         0: .line 298
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            aload 1 /* name */
            iload 2 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual sun.nio.ch.SocketChannelImpl.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
            pop
         1: .line 299
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 3 /* x */
        start local 3 // java.io.IOException x
         3: .line 300
            aload 3 /* x */
            invokestatic sun.nio.ch.Net.translateToSocketException:(Ljava/lang/Exception;)V
        end local 3 // java.io.IOException x
         4: .line 302
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int value
        end local 1 // java.net.SocketOption name
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/nio/ch/SocketAdaptor;
            0    5     1   name  Ljava/net/SocketOption<Ljava/lang/Integer;>;
            0    5     2  value  I
            3    4     3      x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.net.SocketException
    Signature: (Ljava/net/SocketOption<Ljava/lang/Integer;>;I)V
    MethodParameters:
       Name  Flags
      name   
      value  

  private boolean getBooleanOption(java.net.SocketOption<java.lang.Boolean>);
    descriptor: (Ljava/net/SocketOption;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // java.net.SocketOption name
         0: .line 306
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            aload 1 /* name */
            invokevirtual sun.nio.ch.SocketChannelImpl.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
         1: ireturn
         2: .line 307
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* x */
        start local 2 // java.io.IOException x
         3: .line 308
            aload 2 /* x */
            invokestatic sun.nio.ch.Net.translateToSocketException:(Ljava/lang/Exception;)V
         4: .line 309
            iconst_0
            ireturn
        end local 2 // java.io.IOException x
        end local 1 // java.net.SocketOption name
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/nio/ch/SocketAdaptor;
            0    5     1  name  Ljava/net/SocketOption<Ljava/lang/Boolean;>;
            3    5     2     x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.net.SocketException
    Signature: (Ljava/net/SocketOption<Ljava/lang/Boolean;>;)Z
    MethodParameters:
      Name  Flags
      name  

  private int getIntOption(java.net.SocketOption<java.lang.Integer>);
    descriptor: (Ljava/net/SocketOption;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // java.net.SocketOption name
         0: .line 315
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            aload 1 /* name */
            invokevirtual sun.nio.ch.SocketChannelImpl.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
         1: ireturn
         2: .line 316
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* x */
        start local 2 // java.io.IOException x
         3: .line 317
            aload 2 /* x */
            invokestatic sun.nio.ch.Net.translateToSocketException:(Ljava/lang/Exception;)V
         4: .line 318
            iconst_m1
            ireturn
        end local 2 // java.io.IOException x
        end local 1 // java.net.SocketOption name
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/nio/ch/SocketAdaptor;
            0    5     1  name  Ljava/net/SocketOption<Ljava/lang/Integer;>;
            3    5     2     x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.net.SocketException
    Signature: (Ljava/net/SocketOption<Ljava/lang/Integer;>;)I
    MethodParameters:
      Name  Flags
      name  

  public void setTcpNoDelay(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // boolean on
         0: .line 323
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.TCP_NODELAY:Ljava/net/SocketOption;
            iload 1 /* on */
            invokevirtual sun.nio.ch.SocketAdaptor.setBooleanOption:(Ljava/net/SocketOption;Z)V
         1: .line 324
            return
        end local 1 // boolean on
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/SocketAdaptor;
            0    2     1    on  Z
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      on    

  public boolean getTcpNoDelay();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 327
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.TCP_NODELAY:Ljava/net/SocketOption;
            invokevirtual sun.nio.ch.SocketAdaptor.getBooleanOption:(Ljava/net/SocketOption;)Z
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void setSoLinger(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // boolean on
        start local 2 // int linger
         0: .line 331
            iload 1 /* on */
            ifne 2
         1: .line 332
            iconst_m1
            istore 2 /* linger */
         2: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
            iload 2 /* linger */
            invokevirtual sun.nio.ch.SocketAdaptor.setIntOption:(Ljava/net/SocketOption;I)V
         3: .line 334
            return
        end local 2 // int linger
        end local 1 // boolean on
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/nio/ch/SocketAdaptor;
            0    4     1      on  Z
            0    4     2  linger  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
        Name  Flags
      on      
      linger  

  public int getSoLinger();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 337
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
            invokevirtual sun.nio.ch.SocketAdaptor.getIntOption:(Ljava/net/SocketOption;)I
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void sendUrgentData(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // int data
         0: .line 341
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.blockingLock:()Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 342
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
            ifne 3
         2: .line 343
            new java.nio.channels.IllegalBlockingModeException
            dup
            invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
            athrow
         3: .line 344
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            iload 1 /* data */
            i2b
            invokevirtual sun.nio.ch.SocketChannelImpl.sendOutOfBandData:(B)I
            istore 3 /* n */
        start local 3 // int n
         4: .line 345
            getstatic sun.nio.ch.SocketAdaptor.$assertionsDisabled:Z
            ifne 5
            iload 3 /* n */
            iconst_1
            if_icmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 3 // int n
         5: .line 341
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 347
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int data
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/nio/ch/SocketAdaptor;
            0   10     1  data  I
            4    5     3     n  I
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  public void setOOBInline(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // boolean on
         0: .line 350
            aload 0 /* this */
            getstatic sun.nio.ch.ExtendedSocketOption.SO_OOBINLINE:Ljava/net/SocketOption;
            iload 1 /* on */
            invokevirtual sun.nio.ch.SocketAdaptor.setBooleanOption:(Ljava/net/SocketOption;Z)V
         1: .line 351
            return
        end local 1 // boolean on
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/SocketAdaptor;
            0    2     1    on  Z
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      on    

  public boolean getOOBInline();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 354
            aload 0 /* this */
            getstatic sun.nio.ch.ExtendedSocketOption.SO_OOBINLINE:Ljava/net/SocketOption;
            invokevirtual sun.nio.ch.SocketAdaptor.getBooleanOption:(Ljava/net/SocketOption;)Z
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void setSoTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // int timeout
         0: .line 358
            iload 1 /* timeout */
            ifge 2
         1: .line 359
            new java.lang.IllegalArgumentException
            dup
            ldc "timeout can't be negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* timeout */
            putfield sun.nio.ch.SocketAdaptor.timeout:I
         3: .line 361
            return
        end local 1 // int timeout
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/nio/ch/SocketAdaptor;
            0    4     1  timeout  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
         Name  Flags
      timeout  

  public int getSoTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 364
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.timeout:I
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void setSendBufferSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // int size
         0: .line 369
            iload 1 /* size */
            ifgt 2
         1: .line 370
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid send size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 371
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            iload 1 /* size */
            invokevirtual sun.nio.ch.SocketAdaptor.setIntOption:(Ljava/net/SocketOption;I)V
         3: .line 372
            return
        end local 1 // int size
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/ch/SocketAdaptor;
            0    4     1  size  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      size  

  public int getSendBufferSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 375
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
            invokevirtual sun.nio.ch.SocketAdaptor.getIntOption:(Ljava/net/SocketOption;)I
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void setReceiveBufferSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // int size
         0: .line 380
            iload 1 /* size */
            ifgt 2
         1: .line 381
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid receive size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            iload 1 /* size */
            invokevirtual sun.nio.ch.SocketAdaptor.setIntOption:(Ljava/net/SocketOption;I)V
         3: .line 383
            return
        end local 1 // int size
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/ch/SocketAdaptor;
            0    4     1  size  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      size  

  public int getReceiveBufferSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 386
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
            invokevirtual sun.nio.ch.SocketAdaptor.getIntOption:(Ljava/net/SocketOption;)I
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void setKeepAlive(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // boolean on
         0: .line 390
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_KEEPALIVE:Ljava/net/SocketOption;
            iload 1 /* on */
            invokevirtual sun.nio.ch.SocketAdaptor.setBooleanOption:(Ljava/net/SocketOption;Z)V
         1: .line 391
            return
        end local 1 // boolean on
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/SocketAdaptor;
            0    2     1    on  Z
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      on    

  public boolean getKeepAlive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 394
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_KEEPALIVE:Ljava/net/SocketOption;
            invokevirtual sun.nio.ch.SocketAdaptor.getBooleanOption:(Ljava/net/SocketOption;)Z
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void setTrafficClass(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // int tc
         0: .line 398
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            iload 1 /* tc */
            invokevirtual sun.nio.ch.SocketAdaptor.setIntOption:(Ljava/net/SocketOption;I)V
         1: .line 399
            return
        end local 1 // int tc
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/SocketAdaptor;
            0    2     1    tc  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      tc    

  public int getTrafficClass();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 402
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            invokevirtual sun.nio.ch.SocketAdaptor.getIntOption:(Ljava/net/SocketOption;)I
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void setReuseAddress(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.nio.ch.SocketAdaptor this
        start local 1 // boolean on
         0: .line 406
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            iload 1 /* on */
            invokevirtual sun.nio.ch.SocketAdaptor.setBooleanOption:(Ljava/net/SocketOption;Z)V
         1: .line 407
            return
        end local 1 // boolean on
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/SocketAdaptor;
            0    2     1    on  Z
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      on    

  public boolean getReuseAddress();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 410
            aload 0 /* this */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            invokevirtual sun.nio.ch.SocketAdaptor.getBooleanOption:(Ljava/net/SocketOption;)Z
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.net.SocketException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 414
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
         1: .line 415
            return
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/SocketAdaptor;
    Exceptions:
      throws java.io.IOException

  public void shutdownInput();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 419
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.shutdownInput:()Ljava/nio/channels/SocketChannel;
            pop
         1: .line 420
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 1 /* x */
        start local 1 // java.lang.Exception x
         3: .line 421
            aload 1 /* x */
            invokestatic sun.nio.ch.Net.translateException:(Ljava/lang/Exception;)V
        end local 1 // java.lang.Exception x
         4: .line 423
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/nio/ch/SocketAdaptor;
            3    4     1     x  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  public void shutdownOutput();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 427
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.shutdownOutput:()Ljava/nio/channels/SocketChannel;
            pop
         1: .line 428
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 1 /* x */
        start local 1 // java.lang.Exception x
         3: .line 429
            aload 1 /* x */
            invokestatic sun.nio.ch.Net.translateException:(Ljava/lang/Exception;)V
        end local 1 // java.lang.Exception x
         4: .line 431
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/nio/ch/SocketAdaptor;
            3    4     1     x  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 434
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
            ifeq 5
         1: .line 435
            new java.lang.StringBuilder
            dup
            ldc "Socket[addr="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual sun.nio.ch.SocketAdaptor.getInetAddress:()Ljava/net/InetAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 436
            ldc ",port="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual sun.nio.ch.SocketAdaptor.getPort:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         3: .line 437
            ldc ",localport="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual sun.nio.ch.SocketAdaptor.getLocalPort:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 435
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         5: .line 438
      StackMap locals:
      StackMap stack:
            ldc "Socket[unconnected]"
            areturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/nio/ch/SocketAdaptor;

  public boolean isConnected();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 442
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/SocketAdaptor;

  public boolean isBound();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 446
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.localAddress:()Ljava/net/InetSocketAddress;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/SocketAdaptor;

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 450
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/ch/SocketAdaptor;

  public boolean isInputShutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 454
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isInputOpen:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/ch/SocketAdaptor;

  public boolean isOutputShutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.SocketAdaptor this
         0: .line 458
            aload 0 /* this */
            getfield sun.nio.ch.SocketAdaptor.sc:Lsun/nio/ch/SocketChannelImpl;
            invokevirtual sun.nio.ch.SocketChannelImpl.isOutputOpen:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.nio.ch.SocketAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/ch/SocketAdaptor;
}
SourceFile: "SocketAdaptor.java"
NestMembers:
  sun.nio.ch.SocketAdaptor$1  sun.nio.ch.SocketAdaptor$2  sun.nio.ch.SocketAdaptor$SocketInputStream
InnerClasses:
  sun.nio.ch.SocketAdaptor$1
  sun.nio.ch.SocketAdaptor$2
  private SocketInputStream = sun.nio.ch.SocketAdaptor$SocketInputStream of sun.nio.ch.SocketAdaptor