public class com.sun.tools.jdi.SocketTransportService extends com.sun.jdi.connect.spi.TransportService
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.jdi.SocketTransportService
  super_class: com.sun.jdi.connect.spi.TransportService
{
  private java.util.ResourceBundle messages;
    descriptor: Ljava/util/ResourceBundle;
    flags: (0x0002) ACC_PRIVATE

  void handshake(java.net.Socket, long);
    descriptor: (Ljava/net/Socket;J)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.sun.tools.jdi.SocketTransportService this
        start local 1 // java.net.Socket s
        start local 2 // long timeout
         0: .line 126
            aload 1 /* s */
            lload 2 /* timeout */
            l2i
            invokevirtual java.net.Socket.setSoTimeout:(I)V
         1: .line 128
            ldc "JDWP-Handshake"
            ldc "UTF-8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 4 /* hello */
        start local 4 // byte[] hello
         2: .line 129
            aload 1 /* s */
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            aload 4 /* hello */
            invokevirtual java.io.OutputStream.write:([B)V
         3: .line 131
            aload 4 /* hello */
            arraylength
            newarray 8
            astore 5 /* b */
        start local 5 // byte[] b
         4: .line 132
            iconst_0
            istore 6 /* received */
        start local 6 // int received
         5: .line 133
            goto 14
         6: .line 136
      StackMap locals: byte[] byte[] int
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
            aload 5 /* b */
            iload 6 /* received */
            aload 4 /* hello */
            arraylength
            iload 6 /* received */
            isub
            invokevirtual java.io.InputStream.read:([BII)I
            istore 7 /* n */
        start local 7 // int n
         7: .line 137
            goto 10
        end local 7 // int n
      StackMap locals:
      StackMap stack: java.net.SocketTimeoutException
         8: pop
         9: .line 138
            new java.io.IOException
            dup
            ldc "handshake timeout"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 7 // int n
        10: .line 140
      StackMap locals: int
      StackMap stack:
            iload 7 /* n */
            ifge 13
        11: .line 141
            aload 1 /* s */
            invokevirtual java.net.Socket.close:()V
        12: .line 142
            new java.io.IOException
            dup
            ldc "handshake failed - connection prematurally closed"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 144
      StackMap locals:
      StackMap stack:
            iload 6 /* received */
            iload 7 /* n */
            iadd
            istore 6 /* received */
        end local 7 // int n
        14: .line 133
      StackMap locals:
      StackMap stack:
            iload 6 /* received */
            aload 4 /* hello */
            arraylength
            if_icmplt 6
        15: .line 146
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        16: goto 20
        17: .line 147
      StackMap locals: int
      StackMap stack:
            aload 5 /* b */
            iload 7 /* i */
            baload
            aload 4 /* hello */
            iload 7 /* i */
            baload
            if_icmpeq 19
        18: .line 148
            new java.io.IOException
            dup
            ldc "handshake failed - unrecognized message from target VM"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 146
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* i */
            aload 4 /* hello */
            arraylength
            if_icmplt 17
        end local 7 // int i
        21: .line 153
            aload 1 /* s */
            iconst_0
            invokevirtual java.net.Socket.setSoTimeout:(I)V
        22: .line 154
            return
        end local 6 // int received
        end local 5 // byte[] b
        end local 4 // byte[] hello
        end local 2 // long timeout
        end local 1 // java.net.Socket s
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lcom/sun/tools/jdi/SocketTransportService;
            0   23     1         s  Ljava/net/Socket;
            0   23     2   timeout  J
            2   23     4     hello  [B
            4   23     5         b  [B
            5   23     6  received  I
            7    8     7         n  I
           10   14     7         n  I
           16   21     7         i  I
      Exception table:
        from    to  target  type
           6     7       8  Class java.net.SocketTimeoutException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      s        
      timeout  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.SocketTransportService this
         0: .line 159
            aload 0 /* this */
            invokespecial com.sun.jdi.connect.spi.TransportService.<init>:()V
         1: .line 48
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.jdi.SocketTransportService.messages:Ljava/util/ResourceBundle;
         2: .line 160
            return
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/jdi/SocketTransportService;

  public java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.SocketTransportService this
         0: .line 166
            ldc "Socket"
            areturn
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/jdi/SocketTransportService;

  public java.lang.String description();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.jdi.SocketTransportService this
         0: .line 173
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 174
            aload 0 /* this */
            getfield com.sun.tools.jdi.SocketTransportService.messages:Ljava/util/ResourceBundle;
            ifnonnull 3
         2: .line 175
            aload 0 /* this */
            ldc "com.sun.tools.jdi.resources.jdi"
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
            putfield com.sun.tools.jdi.SocketTransportService.messages:Ljava/util/ResourceBundle;
         3: .line 173
      StackMap locals: com.sun.tools.jdi.SocketTransportService
      StackMap stack:
            aload 1
            monitorexit
         4: goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.SocketTransportService.messages:Ljava/util/ResourceBundle;
            ldc "socket_transportservice.description"
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/tools/jdi/SocketTransportService;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  public com.sun.jdi.connect.spi.TransportService$Capabilities capabilities();
    descriptor: ()Lcom/sun/jdi/connect/spi/TransportService$Capabilities;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.SocketTransportService this
         0: .line 185
            new com.sun.tools.jdi.SocketTransportService$1
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.jdi.SocketTransportService$1.<init>:(Lcom/sun/tools/jdi/SocketTransportService;)V
            areturn
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/jdi/SocketTransportService;

  public com.sun.jdi.connect.spi.Connection attach(java.lang.String, long, long);
    descriptor: (Ljava/lang/String;JJ)Lcom/sun/jdi/connect/spi/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=4
        start local 0 // com.sun.tools.jdi.SocketTransportService this
        start local 1 // java.lang.String address
        start local 2 // long attachTimeout
        start local 4 // long handshakeTimeout
         0: .line 211
            aload 1 /* address */
            ifnonnull 2
         1: .line 212
            new java.lang.NullPointerException
            dup
            ldc "address is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 214
      StackMap locals:
      StackMap stack:
            lload 2 /* attachTimeout */
            lconst_0
            lcmp
            iflt 3
            lload 4 /* handshakeTimeout */
            lconst_0
            lcmp
            ifge 4
         3: .line 215
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "timeout is negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 218
      StackMap locals:
      StackMap stack:
            aload 1 /* address */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* splitIndex */
        start local 6 // int splitIndex
         5: .line 221
            iload 6 /* splitIndex */
            ifge 9
         6: .line 222
            ldc "localhost"
            astore 7 /* host */
        start local 7 // java.lang.String host
         7: .line 223
            aload 1 /* address */
            astore 8 /* portStr */
        start local 8 // java.lang.String portStr
         8: .line 224
            goto 11
        end local 8 // java.lang.String portStr
        end local 7 // java.lang.String host
         9: .line 225
      StackMap locals: int
      StackMap stack:
            aload 1 /* address */
            iconst_0
            iload 6 /* splitIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* host */
        start local 7 // java.lang.String host
        10: .line 226
            aload 1 /* address */
            iload 6 /* splitIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* portStr */
        start local 8 // java.lang.String portStr
        11: .line 229
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 7 /* host */
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 230
            invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
            astore 7 /* host */
        13: .line 235
      StackMap locals:
      StackMap stack:
            aload 8 /* portStr */
            invokestatic java.lang.Integer.decode:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 9 /* port */
        start local 9 // int port
        14: .line 236
            goto 19
        end local 9 // int port
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        15: pop
        16: .line 237
            new java.lang.IllegalArgumentException
            dup
        17: .line 238
            ldc "unable to parse port number in address"
        18: .line 237
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 9 // int port
        19: .line 242
      StackMap locals: int
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aload 7 /* host */
            iload 9 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            astore 10 /* sa */
        start local 10 // java.net.InetSocketAddress sa
        20: .line 243
            new java.net.Socket
            dup
            invokespecial java.net.Socket.<init>:()V
            astore 11 /* s */
        start local 11 // java.net.Socket s
        21: .line 245
            aload 11 /* s */
            aload 10 /* sa */
            lload 2 /* attachTimeout */
            l2i
            invokevirtual java.net.Socket.connect:(Ljava/net/SocketAddress;I)V
        22: .line 246
            goto 28
      StackMap locals: com.sun.tools.jdi.SocketTransportService java.lang.String long long int java.lang.String java.lang.String int java.net.InetSocketAddress java.net.Socket
      StackMap stack: java.net.SocketTimeoutException
        23: pop
        24: .line 248
            aload 11 /* s */
            invokevirtual java.net.Socket.close:()V
        25: .line 249
            goto 27
      StackMap locals:
      StackMap stack: java.io.IOException
        26: pop
        27: .line 250
      StackMap locals:
      StackMap stack:
            new com.sun.jdi.connect.TransportTimeoutException
            dup
            ldc "timed out trying to establish connection"
            invokespecial com.sun.jdi.connect.TransportTimeoutException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* s */
            lload 4 /* handshakeTimeout */
            invokevirtual com.sun.tools.jdi.SocketTransportService.handshake:(Ljava/net/Socket;J)V
        29: .line 256
            goto 35
      StackMap locals:
      StackMap stack: java.io.IOException
        30: astore 12 /* exc */
        start local 12 // java.io.IOException exc
        31: .line 258
            aload 11 /* s */
            invokevirtual java.net.Socket.close:()V
        32: .line 259
            goto 34
      StackMap locals: com.sun.tools.jdi.SocketTransportService java.lang.String long long int java.lang.String java.lang.String int java.net.InetSocketAddress java.net.Socket java.io.IOException
      StackMap stack: java.io.IOException
        33: pop
        34: .line 260
      StackMap locals:
      StackMap stack:
            aload 12 /* exc */
            athrow
        end local 12 // java.io.IOException exc
        35: .line 263
      StackMap locals:
      StackMap stack:
            new com.sun.tools.jdi.SocketConnection
            dup
            aload 11 /* s */
            invokespecial com.sun.tools.jdi.SocketConnection.<init>:(Ljava/net/Socket;)V
            areturn
        end local 11 // java.net.Socket s
        end local 10 // java.net.InetSocketAddress sa
        end local 9 // int port
        end local 8 // java.lang.String portStr
        end local 7 // java.lang.String host
        end local 6 // int splitIndex
        end local 4 // long handshakeTimeout
        end local 2 // long attachTimeout
        end local 1 // java.lang.String address
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   36     0              this  Lcom/sun/tools/jdi/SocketTransportService;
            0   36     1           address  Ljava/lang/String;
            0   36     2     attachTimeout  J
            0   36     4  handshakeTimeout  J
            5   36     6        splitIndex  I
            7    9     7              host  Ljava/lang/String;
           10   36     7              host  Ljava/lang/String;
            8    9     8           portStr  Ljava/lang/String;
           11   36     8           portStr  Ljava/lang/String;
           14   15     9              port  I
           19   36     9              port  I
           20   36    10                sa  Ljava/net/InetSocketAddress;
           21   36    11                 s  Ljava/net/Socket;
           31   35    12               exc  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          13    14      15  Class java.lang.NumberFormatException
          21    22      23  Class java.net.SocketTimeoutException
          24    25      26  Class java.io.IOException
          28    29      30  Class java.io.IOException
          31    32      33  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      address           
      attachTimeout     
      handshakeTimeout  

  com.sun.jdi.connect.spi.TransportService$ListenKey startListening(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Lcom/sun/jdi/connect/spi/TransportService$ListenKey;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.tools.jdi.SocketTransportService this
        start local 1 // java.lang.String localaddress
        start local 2 // int port
         0: .line 272
            aload 1 /* localaddress */
            ifnonnull 3
         1: .line 273
            new java.net.InetSocketAddress
            dup
            iload 2 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(I)V
            astore 3 /* sa */
        start local 3 // java.net.InetSocketAddress sa
         2: .line 274
            goto 4
        end local 3 // java.net.InetSocketAddress sa
         3: .line 275
      StackMap locals:
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aload 1 /* localaddress */
            iload 2 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            astore 3 /* sa */
        start local 3 // java.net.InetSocketAddress sa
         4: .line 277
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            new java.net.ServerSocket
            dup
            invokespecial java.net.ServerSocket.<init>:()V
            astore 4 /* ss */
        start local 4 // java.net.ServerSocket ss
         5: .line 278
            iload 2 /* port */
            ifne 7
         6: .line 282
            aload 4 /* ss */
            iconst_0
            invokevirtual java.net.ServerSocket.setReuseAddress:(Z)V
         7: .line 284
      StackMap locals: java.net.ServerSocket
      StackMap stack:
            aload 4 /* ss */
            aload 3 /* sa */
            invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;)V
         8: .line 285
            new com.sun.tools.jdi.SocketTransportService$SocketListenKey
            dup
            aload 4 /* ss */
            invokespecial com.sun.tools.jdi.SocketTransportService$SocketListenKey.<init>:(Ljava/net/ServerSocket;)V
            areturn
        end local 4 // java.net.ServerSocket ss
        end local 3 // java.net.InetSocketAddress sa
        end local 2 // int port
        end local 1 // java.lang.String localaddress
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lcom/sun/tools/jdi/SocketTransportService;
            0    9     1  localaddress  Ljava/lang/String;
            0    9     2          port  I
            2    3     3            sa  Ljava/net/InetSocketAddress;
            4    9     3            sa  Ljava/net/InetSocketAddress;
            5    9     4            ss  Ljava/net/ServerSocket;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      localaddress  
      port          

  public com.sun.jdi.connect.spi.TransportService$ListenKey startListening(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/sun/jdi/connect/spi/TransportService$ListenKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.jdi.SocketTransportService this
        start local 1 // java.lang.String address
         0: .line 293
            aload 1 /* address */
            ifnull 1
            aload 1 /* address */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 294
      StackMap locals:
      StackMap stack:
            ldc "0"
            astore 1 /* address */
         2: .line 297
      StackMap locals:
      StackMap stack:
            aload 1 /* address */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* splitIndex */
        start local 2 // int splitIndex
         3: .line 298
            aconst_null
            astore 3 /* localaddr */
        start local 3 // java.lang.String localaddr
         4: .line 299
            iload 2 /* splitIndex */
            iflt 7
         5: .line 300
            aload 1 /* address */
            iconst_0
            iload 2 /* splitIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* localaddr */
         6: .line 301
            aload 1 /* address */
            iload 2 /* splitIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* address */
         7: .line 306
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 1 /* address */
            invokestatic java.lang.Integer.decode:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* port */
        start local 4 // int port
         8: .line 307
            goto 13
        end local 4 // int port
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
         9: pop
        10: .line 308
            new java.lang.IllegalArgumentException
            dup
        11: .line 309
            ldc "unable to parse port number in address"
        12: .line 308
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // int port
        13: .line 312
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* localaddr */
            iload 4 /* port */
            invokevirtual com.sun.tools.jdi.SocketTransportService.startListening:(Ljava/lang/String;I)Lcom/sun/jdi/connect/spi/TransportService$ListenKey;
            areturn
        end local 4 // int port
        end local 3 // java.lang.String localaddr
        end local 2 // int splitIndex
        end local 1 // java.lang.String address
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lcom/sun/tools/jdi/SocketTransportService;
            0   14     1     address  Ljava/lang/String;
            3   14     2  splitIndex  I
            4   14     3   localaddr  Ljava/lang/String;
            8    9     4        port  I
           13   14     4        port  I
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.NumberFormatException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      address  

  public com.sun.jdi.connect.spi.TransportService$ListenKey startListening();
    descriptor: ()Lcom/sun/jdi/connect/spi/TransportService$ListenKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.SocketTransportService this
         0: .line 319
            aload 0 /* this */
            aconst_null
            iconst_0
            invokevirtual com.sun.tools.jdi.SocketTransportService.startListening:(Ljava/lang/String;I)Lcom/sun/jdi/connect/spi/TransportService$ListenKey;
            areturn
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/jdi/SocketTransportService;
    Exceptions:
      throws java.io.IOException

  public void stopListening(com.sun.jdi.connect.spi.TransportService$ListenKey);
    descriptor: (Lcom/sun/jdi/connect/spi/TransportService$ListenKey;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.tools.jdi.SocketTransportService this
        start local 1 // com.sun.jdi.connect.spi.TransportService$ListenKey listener
         0: .line 326
            aload 1 /* listener */
            instanceof com.sun.tools.jdi.SocketTransportService$SocketListenKey
            ifne 2
         1: .line 327
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 330
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            dup
            astore 2
            monitorenter
         3: .line 331
            aload 1 /* listener */
            checkcast com.sun.tools.jdi.SocketTransportService$SocketListenKey
            invokevirtual com.sun.tools.jdi.SocketTransportService$SocketListenKey.socket:()Ljava/net/ServerSocket;
            astore 3 /* ss */
        start local 3 // java.net.ServerSocket ss
         4: .line 335
            aload 3 /* ss */
            invokevirtual java.net.ServerSocket.isClosed:()Z
            ifeq 6
         5: .line 336
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 338
      StackMap locals: com.sun.jdi.connect.spi.TransportService$ListenKey java.net.ServerSocket
      StackMap stack:
            aload 3 /* ss */
            invokevirtual java.net.ServerSocket.close:()V
        end local 3 // java.net.ServerSocket ss
         7: .line 330
            aload 2
            monitorexit
         8: goto 11
      StackMap locals: com.sun.tools.jdi.SocketTransportService com.sun.jdi.connect.spi.TransportService$ListenKey com.sun.jdi.connect.spi.TransportService$ListenKey
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 340
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.jdi.connect.spi.TransportService$ListenKey listener
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lcom/sun/tools/jdi/SocketTransportService;
            0   12     1  listener  Lcom/sun/jdi/connect/spi/TransportService$ListenKey;
            4    7     3        ss  Ljava/net/ServerSocket;
      Exception table:
        from    to  target  type
           3     8       9  any
           9    10       9  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      listener  

  public com.sun.jdi.connect.spi.Connection accept(com.sun.jdi.connect.spi.TransportService$ListenKey, long, long);
    descriptor: (Lcom/sun/jdi/connect/spi/TransportService$ListenKey;JJ)Lcom/sun/jdi/connect/spi/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.sun.tools.jdi.SocketTransportService this
        start local 1 // com.sun.jdi.connect.spi.TransportService$ListenKey listener
        start local 2 // long acceptTimeout
        start local 4 // long handshakeTimeout
         0: .line 346
            lload 2 /* acceptTimeout */
            lconst_0
            lcmp
            iflt 1
            lload 4 /* handshakeTimeout */
            lconst_0
            lcmp
            ifge 2
         1: .line 347
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "timeout is negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 349
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            instanceof com.sun.tools.jdi.SocketTransportService$SocketListenKey
            ifne 4
         3: .line 350
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 356
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            dup
            astore 7
            monitorenter
         5: .line 357
            aload 1 /* listener */
            checkcast com.sun.tools.jdi.SocketTransportService$SocketListenKey
            invokevirtual com.sun.tools.jdi.SocketTransportService$SocketListenKey.socket:()Ljava/net/ServerSocket;
            astore 6 /* ss */
        start local 6 // java.net.ServerSocket ss
         6: .line 358
            aload 6 /* ss */
            invokevirtual java.net.ServerSocket.isClosed:()Z
            ifeq 8
         7: .line 359
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 356
      StackMap locals: java.net.ServerSocket com.sun.jdi.connect.spi.TransportService$ListenKey
      StackMap stack:
            aload 7
            monitorexit
         9: goto 12
        end local 6 // java.net.ServerSocket ss
      StackMap locals: com.sun.tools.jdi.SocketTransportService com.sun.jdi.connect.spi.TransportService$ListenKey long long top com.sun.jdi.connect.spi.TransportService$ListenKey
      StackMap stack: java.lang.Throwable
        10: aload 7
            monitorexit
        11: athrow
        start local 6 // java.net.ServerSocket ss
        12: .line 374
      StackMap locals: com.sun.tools.jdi.SocketTransportService com.sun.jdi.connect.spi.TransportService$ListenKey long long java.net.ServerSocket
      StackMap stack:
            aload 6 /* ss */
            lload 2 /* acceptTimeout */
            l2i
            invokevirtual java.net.ServerSocket.setSoTimeout:(I)V
        13: .line 377
            aload 6 /* ss */
            invokevirtual java.net.ServerSocket.accept:()Ljava/net/Socket;
            astore 7 /* s */
        start local 7 // java.net.Socket s
        14: .line 378
            goto 17
        end local 7 // java.net.Socket s
      StackMap locals:
      StackMap stack: java.net.SocketTimeoutException
        15: pop
        16: .line 379
            new com.sun.jdi.connect.TransportTimeoutException
            dup
            ldc "timeout waiting for connection"
            invokespecial com.sun.jdi.connect.TransportTimeoutException.<init>:(Ljava/lang/String;)V
            athrow
        start local 7 // java.net.Socket s
        17: .line 383
      StackMap locals: java.net.Socket
      StackMap stack:
            aload 0 /* this */
            aload 7 /* s */
            lload 4 /* handshakeTimeout */
            invokevirtual com.sun.tools.jdi.SocketTransportService.handshake:(Ljava/net/Socket;J)V
        18: .line 385
            new com.sun.tools.jdi.SocketConnection
            dup
            aload 7 /* s */
            invokespecial com.sun.tools.jdi.SocketConnection.<init>:(Ljava/net/Socket;)V
            areturn
        end local 7 // java.net.Socket s
        end local 6 // java.net.ServerSocket ss
        end local 4 // long handshakeTimeout
        end local 2 // long acceptTimeout
        end local 1 // com.sun.jdi.connect.spi.TransportService$ListenKey listener
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lcom/sun/tools/jdi/SocketTransportService;
            0   19     1          listener  Lcom/sun/jdi/connect/spi/TransportService$ListenKey;
            0   19     2     acceptTimeout  J
            0   19     4  handshakeTimeout  J
            6   10     6                ss  Ljava/net/ServerSocket;
           12   19     6                ss  Ljava/net/ServerSocket;
           14   15     7                 s  Ljava/net/Socket;
           17   19     7                 s  Ljava/net/Socket;
      Exception table:
        from    to  target  type
           5     9      10  any
          10    11      10  any
          13    14      15  Class java.net.SocketTimeoutException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      listener          
      acceptTimeout     
      handshakeTimeout  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.SocketTransportService this
         0: .line 389
            aload 0 /* this */
            invokevirtual com.sun.tools.jdi.SocketTransportService.name:()Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.jdi.SocketTransportService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/jdi/SocketTransportService;
}
SourceFile: "SocketTransportService.java"
NestMembers:
  com.sun.tools.jdi.SocketTransportService$1  com.sun.tools.jdi.SocketTransportService$SocketListenKey
InnerClasses:
  public abstract Capabilities = com.sun.jdi.connect.spi.TransportService$Capabilities of com.sun.jdi.connect.spi.TransportService
  public abstract ListenKey = com.sun.jdi.connect.spi.TransportService$ListenKey of com.sun.jdi.connect.spi.TransportService
  com.sun.tools.jdi.SocketTransportService$1
  SocketListenKey = com.sun.tools.jdi.SocketTransportService$SocketListenKey of com.sun.tools.jdi.SocketTransportService