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 120
            aload 1 /* s */
            lload 2 /* timeout */
            l2i
            invokevirtual java.net.Socket.setSoTimeout:(I)V
         1: .line 122
            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 123
            aload 1 /* s */
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            aload 4 /* hello */
            invokevirtual java.io.OutputStream.write:([B)V
         3: .line 125
            aload 4 /* hello */
            arraylength
            newarray 8
            astore 5 /* b */
        start local 5 // byte[] b
         4: .line 126
            iconst_0
            istore 6 /* received */
        start local 6 // int received
         5: .line 127
            goto 14
         6: .line 130
      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 131
            goto 10
        end local 7 // int n
      StackMap locals:
      StackMap stack: java.net.SocketTimeoutException
         8: pop
         9: .line 132
            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 134
      StackMap locals: int
      StackMap stack:
            iload 7 /* n */
            ifge 13
        11: .line 135
            aload 1 /* s */
            invokevirtual java.net.Socket.close:()V
        12: .line 136
            new java.io.IOException
            dup
            ldc "handshake failed - connection prematurally closed"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 138
      StackMap locals:
      StackMap stack:
            iload 6 /* received */
            iload 7 /* n */
            iadd
            istore 6 /* received */
        end local 7 // int n
        14: .line 127
      StackMap locals:
      StackMap stack:
            iload 6 /* received */
            aload 4 /* hello */
            arraylength
            if_icmplt 6
        15: .line 140
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        16: goto 20
        17: .line 141
      StackMap locals: int
      StackMap stack:
            aload 5 /* b */
            iload 7 /* i */
            baload
            aload 4 /* hello */
            iload 7 /* i */
            baload
            if_icmpeq 19
        18: .line 142
            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 140
      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 147
            aload 1 /* s */
            iconst_0
            invokevirtual java.net.Socket.setSoTimeout:(I)V
        22: .line 148
            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 153
            aload 0 /* this */
            invokespecial com.sun.jdi.connect.spi.TransportService.<init>:()V
         1: .line 42
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.jdi.SocketTransportService.messages:Ljava/util/ResourceBundle;
         2: .line 154
            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 160
            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 167
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 168
            aload 0 /* this */
            getfield com.sun.tools.jdi.SocketTransportService.messages:Ljava/util/ResourceBundle;
            ifnonnull 3
         2: .line 169
            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 167
      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 172
      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=2, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.SocketTransportService this
         0: .line 179
            new com.sun.tools.jdi.SocketTransportServiceCapabilities
            dup
            invokespecial com.sun.tools.jdi.SocketTransportServiceCapabilities.<init>:()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 190
            aload 1 /* address */
            ifnonnull 2
         1: .line 191
            new java.lang.NullPointerException
            dup
            ldc "address is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 193
      StackMap locals:
      StackMap stack:
            lload 2 /* attachTimeout */
            lconst_0
            lcmp
            iflt 3
            lload 4 /* handshakeTimeout */
            lconst_0
            lcmp
            ifge 4
         3: .line 194
      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 197
      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 200
            iload 6 /* splitIndex */
            ifge 9
         6: .line 201
            invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
            astore 7 /* host */
        start local 7 // java.lang.String host
         7: .line 202
            aload 1 /* address */
            astore 8 /* portStr */
        start local 8 // java.lang.String portStr
         8: .line 203
            goto 11
        end local 8 // java.lang.String portStr
        end local 7 // java.lang.String host
         9: .line 204
      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 205
            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 210
      StackMap locals: java.lang.String java.lang.String
      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
        12: .line 211
            goto 17
        end local 9 // int port
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
        13: pop
        14: .line 212
            new java.lang.IllegalArgumentException
            dup
        15: .line 213
            ldc "unable to parse port number in address"
        16: .line 212
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 9 // int port
        17: .line 219
      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
        18: .line 220
            new java.net.Socket
            dup
            invokespecial java.net.Socket.<init>:()V
            astore 11 /* s */
        start local 11 // java.net.Socket s
        19: .line 222
            aload 11 /* s */
            aload 10 /* sa */
            lload 2 /* attachTimeout */
            l2i
            invokevirtual java.net.Socket.connect:(Ljava/net/SocketAddress;I)V
        20: .line 223
            goto 26
      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
        21: pop
        22: .line 225
            aload 11 /* s */
            invokevirtual java.net.Socket.close:()V
        23: .line 226
            goto 25
      StackMap locals:
      StackMap stack: java.io.IOException
        24: pop
        25: .line 227
      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
        26: .line 232
      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
        27: .line 233
            goto 33
      StackMap locals:
      StackMap stack: java.io.IOException
        28: astore 12 /* exc */
        start local 12 // java.io.IOException exc
        29: .line 235
            aload 11 /* s */
            invokevirtual java.net.Socket.close:()V
        30: .line 236
            goto 32
      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
        31: pop
        32: .line 237
      StackMap locals:
      StackMap stack:
            aload 12 /* exc */
            athrow
        end local 12 // java.io.IOException exc
        33: .line 240
      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   34     0              this  Lcom/sun/tools/jdi/SocketTransportService;
            0   34     1           address  Ljava/lang/String;
            0   34     2     attachTimeout  J
            0   34     4  handshakeTimeout  J
            5   34     6        splitIndex  I
            7    9     7              host  Ljava/lang/String;
           10   34     7              host  Ljava/lang/String;
            8    9     8           portStr  Ljava/lang/String;
           11   34     8           portStr  Ljava/lang/String;
           12   13     9              port  I
           17   34     9              port  I
           18   34    10                sa  Ljava/net/InetSocketAddress;
           19   34    11                 s  Ljava/net/Socket;
           29   33    12               exc  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          11    12      13  Class java.lang.NumberFormatException
          19    20      21  Class java.net.SocketTimeoutException
          22    23      24  Class java.io.IOException
          26    27      28  Class java.io.IOException
          29    30      31  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 249
            aload 1 /* localaddress */
            ifnonnull 3
         1: .line 250
            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 251
            goto 4
        end local 3 // java.net.InetSocketAddress sa
         3: .line 252
      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 254
      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 255
            aload 4 /* ss */
            aload 3 /* sa */
            invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;)V
         6: .line 256
            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    7     0          this  Lcom/sun/tools/jdi/SocketTransportService;
            0    7     1  localaddress  Ljava/lang/String;
            0    7     2          port  I
            2    3     3            sa  Ljava/net/InetSocketAddress;
            4    7     3            sa  Ljava/net/InetSocketAddress;
            5    7     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 264
            aload 1 /* address */
            ifnull 1
            aload 1 /* address */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 265
      StackMap locals:
      StackMap stack:
            ldc "0"
            astore 1 /* address */
         2: .line 268
      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 269
            aconst_null
            astore 3 /* localaddr */
        start local 3 // java.lang.String localaddr
         4: .line 270
            iload 2 /* splitIndex */
            iflt 7
         5: .line 271
            aload 1 /* address */
            iconst_0
            iload 2 /* splitIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* localaddr */
         6: .line 272
            aload 1 /* address */
            iload 2 /* splitIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* address */
         7: .line 277
      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 278
            goto 13
        end local 4 // int port
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
         9: pop
        10: .line 279
            new java.lang.IllegalArgumentException
            dup
        11: .line 280
            ldc "unable to parse port number in address"
        12: .line 279
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // int port
        13: .line 283
      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 290
            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 297
            aload 1 /* listener */
            instanceof com.sun.tools.jdi.SocketTransportService$SocketListenKey
            ifne 2
         1: .line 298
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            dup
            astore 2
            monitorenter
         3: .line 302
            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 306
            aload 3 /* ss */
            invokevirtual java.net.ServerSocket.isClosed:()Z
            ifeq 6
         5: .line 307
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 309
      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 301
            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 311
      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 317
            lload 2 /* acceptTimeout */
            lconst_0
            lcmp
            iflt 1
            lload 4 /* handshakeTimeout */
            lconst_0
            lcmp
            ifge 2
         1: .line 318
      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 320
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            instanceof com.sun.tools.jdi.SocketTransportService$SocketListenKey
            ifne 4
         3: .line 321
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 327
      StackMap locals:
      StackMap stack:
            aload 1 /* listener */
            dup
            astore 7
            monitorenter
         5: .line 328
            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 329
            aload 6 /* ss */
            invokevirtual java.net.ServerSocket.isClosed:()Z
            ifeq 8
         7: .line 330
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid listener"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 327
      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 345
      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 348
            aload 6 /* ss */
            invokevirtual java.net.ServerSocket.accept:()Ljava/net/Socket;
            astore 7 /* s */
        start local 7 // java.net.Socket s
        14: .line 349
            goto 17
        end local 7 // java.net.Socket s
      StackMap locals:
      StackMap stack: java.net.SocketTimeoutException
        15: pop
        16: .line 350
            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 354
      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 356
            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 360
            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$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
  SocketListenKey = com.sun.tools.jdi.SocketTransportService$SocketListenKey of com.sun.tools.jdi.SocketTransportService