public class com.sun.tools.jdi.TargetVM implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.jdi.TargetVM
  super_class: java.lang.Object
{
  private java.util.Map<java.lang.String, com.sun.tools.jdi.Packet> waitingQueue;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/sun/tools/jdi/Packet;>;

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

  private java.util.List<com.sun.jdi.event.EventQueue> eventQueues;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lcom/sun/jdi/event/EventQueue;>;

  private com.sun.tools.jdi.VirtualMachineImpl vm;
    descriptor: Lcom/sun/tools/jdi/VirtualMachineImpl;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.jdi.connect.spi.Connection connection;
    descriptor: Lcom/sun/jdi/connect/spi/Connection;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Thread readerThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.jdi.TargetVM$EventController eventController;
    descriptor: Lcom/sun/tools/jdi/TargetVM$EventController;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  void <init>(com.sun.tools.jdi.VirtualMachineImpl, com.sun.jdi.connect.spi.Connection);
    descriptor: (Lcom/sun/tools/jdi/VirtualMachineImpl;Lcom/sun/jdi/connect/spi/Connection;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.VirtualMachineImpl vm
        start local 2 // com.sun.jdi.connect.spi.Connection connection
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            aload 0 /* this */
            new java.util.HashMap
            dup
            bipush 32
            ldc 0.75
            invokespecial java.util.HashMap.<init>:(IF)V
            putfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
         2: .line 38
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
         3: .line 39
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
            putfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
         4: .line 43
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
         5: .line 44
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         6: .line 54
            aload 0 /* this */
            aload 1 /* vm */
            putfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
         7: .line 55
            aload 0 /* this */
            aload 2 /* connection */
            putfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
         8: .line 56
            aload 0 /* this */
            new java.lang.Thread
            dup
            aload 1 /* vm */
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.threadGroupForJDI:()Ljava/lang/ThreadGroup;
         9: .line 57
            aload 0 /* this */
            ldc "JDI Target VM Interface"
            invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V
        10: .line 56
            putfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
        11: .line 58
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        12: .line 59
            return
        end local 2 // com.sun.jdi.connect.spi.Connection connection
        end local 1 // com.sun.tools.jdi.VirtualMachineImpl vm
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/sun/tools/jdi/TargetVM;
            0   13     1          vm  Lcom/sun/tools/jdi/VirtualMachineImpl;
            0   13     2  connection  Lcom/sun/jdi/connect/spi/Connection;
    MethodParameters:
            Name  Flags
      vm          
      connection  

  void start();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 62
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.readerThread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
         1: .line 63
            return
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/jdi/TargetVM;

  private void dumpPacket(com.sun.tools.jdi.Packet, boolean);
    descriptor: (Lcom/sun/tools/jdi/Packet;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet packet
        start local 2 // boolean sending
         0: .line 66
            iload 2 /* sending */
            ifeq 1
            ldc "Sending"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "Receiving"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* direction */
        start local 3 // java.lang.String direction
         3: .line 67
            iload 2 /* sending */
            ifeq 11
         4: .line 68
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            new java.lang.StringBuilder
            dup
            aload 3 /* direction */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Command. id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         5: .line 69
            ldc ", length="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.data:[B
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 70
            ldc ", commandSet="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.cmdSet:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         7: .line 71
            ldc ", command="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.cmd:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 72
            ldc ", flags="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.flags:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 68
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        10: .line 73
            goto 20
        11: .line 74
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.flags:S
            sipush 128
            iand
            ifeq 13
        12: .line 75
            ldc "Reply"
            goto 14
      StackMap locals:
      StackMap stack:
        13: ldc "Event"
        14: .line 74
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* type */
        start local 4 // java.lang.String type
        15: .line 76
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            new java.lang.StringBuilder
            dup
            aload 3 /* direction */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        16: .line 77
            ldc ", length="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.data:[B
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        17: .line 78
            ldc ", errorCode="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.errorCode:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        18: .line 79
            ldc ", flags="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.flags:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 76
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        end local 4 // java.lang.String type
        20: .line 81
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            bipush 80
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 4 /* line */
        start local 4 // java.lang.StringBuffer line
        21: .line 82
            aload 4 /* line */
            ldc "0000: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        22: .line 83
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        23: goto 42
        24: .line 84
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            iload 5 /* i */
            ifle 35
            iload 5 /* i */
            bipush 16
            irem
            ifne 35
        25: .line 85
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            aload 4 /* line */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        26: .line 86
            aload 4 /* line */
            iconst_0
            invokevirtual java.lang.StringBuffer.setLength:(I)V
        27: .line 87
            aload 4 /* line */
            iload 5 /* i */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        28: .line 88
            aload 4 /* line */
            ldc ": "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        29: .line 89
            aload 4 /* line */
            invokevirtual java.lang.StringBuffer.length:()I
            istore 6 /* len */
        start local 6 // int len
        30: .line 90
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        31: goto 34
        32: .line 91
      StackMap locals: int int
      StackMap stack:
            aload 4 /* line */
            iconst_0
            bipush 48
            invokevirtual java.lang.StringBuffer.insert:(IC)Ljava/lang/StringBuffer;
            pop
        33: .line 90
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* j */
            bipush 6
            iload 6 /* len */
            isub
            if_icmplt 32
        end local 7 // int j
        end local 6 // int len
        35: .line 94
      StackMap locals:
      StackMap stack:
            sipush 255
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.data:[B
            iload 5 /* i */
            baload
            iand
            istore 6 /* val */
        start local 6 // int val
        36: .line 95
            iload 6 /* val */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 7 /* str */
        start local 7 // java.lang.String str
        37: .line 96
            aload 7 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 39
        38: .line 97
            aload 4 /* line */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        39: .line 99
      StackMap locals: int java.lang.String
      StackMap stack:
            aload 4 /* line */
            aload 7 /* str */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        40: .line 100
            aload 4 /* line */
            bipush 32
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        end local 7 // java.lang.String str
        end local 6 // int val
        41: .line 83
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 5 /* i */
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.data:[B
            arraylength
            if_icmplt 24
        end local 5 // int i
        43: .line 102
            aload 4 /* line */
            invokevirtual java.lang.StringBuffer.length:()I
            bipush 6
            if_icmple 45
        44: .line 103
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            aload 4 /* line */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        45: .line 105
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.StringBuffer line
        end local 3 // java.lang.String direction
        end local 2 // boolean sending
        end local 1 // com.sun.tools.jdi.Packet packet
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   46     0       this  Lcom/sun/tools/jdi/TargetVM;
            0   46     1     packet  Lcom/sun/tools/jdi/Packet;
            0   46     2    sending  Z
            3   46     3  direction  Ljava/lang/String;
           15   20     4       type  Ljava/lang/String;
           21   46     4       line  Ljava/lang/StringBuffer;
           23   43     5          i  I
           30   35     6        len  I
           31   35     7          j  I
           36   41     6        val  I
           37   41     7        str  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      packet   
      sending  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 108
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            iconst_1
            iand
            ifeq 2
         1: .line 109
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            ldc "Target VM interface thread running"
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
         2: .line 111
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* p */
        start local 1 // com.sun.tools.jdi.Packet p
         3: .line 114
            goto 45
         4: .line 116
      StackMap locals: com.sun.tools.jdi.Packet
      StackMap stack:
            iconst_0
            istore 4 /* done */
        start local 4 // boolean done
         5: .line 118
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
            invokevirtual com.sun.jdi.connect.spi.Connection.readPacket:()[B
            astore 5 /* b */
        start local 5 // byte[] b
         6: .line 119
            aload 5 /* b */
            arraylength
            ifne 8
         7: .line 120
            iconst_1
            istore 4 /* done */
         8: .line 122
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top int byte[]
      StackMap stack:
            aload 5 /* b */
            invokestatic com.sun.tools.jdi.Packet.fromByteArray:([B)Lcom/sun/tools/jdi/Packet;
            astore 1 /* p */
        end local 5 // byte[] b
         9: .line 123
            goto 12
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top int
      StackMap stack: java.io.IOException
        10: pop
        11: .line 124
            iconst_1
            istore 4 /* done */
        12: .line 127
      StackMap locals:
      StackMap stack:
            iload 4 /* done */
            ifeq 18
        13: .line 128
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
        14: .line 130
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
            invokevirtual com.sun.jdi.connect.spi.Connection.close:()V
        15: .line 131
            goto 46
      StackMap locals:
      StackMap stack: java.io.IOException
        16: pop
        17: .line 132
            goto 46
        18: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            getstatic com.sun.tools.jdi.VirtualMachineImpl.TRACE_RAW_RECEIVES:I
            iand
            ifeq 20
        19: .line 136
            aload 0 /* this */
            aload 1 /* p */
            iconst_0
            invokevirtual com.sun.tools.jdi.TargetVM.dumpPacket:(Lcom/sun/tools/jdi/Packet;Z)V
        20: .line 139
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.flags:S
            sipush 128
            iand
            ifne 23
        21: .line 141
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.sun.tools.jdi.TargetVM.handleVMCommand:(Lcom/sun/tools/jdi/Packet;)V
        22: .line 142
            goto 45
        23: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.state:()Lcom/sun/tools/jdi/VMState;
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.id:I
            invokevirtual com.sun.tools.jdi.VMState.notifyCommandComplete:(I)V
        24: .line 148
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.id:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            astore 3 /* idString */
        start local 3 // java.lang.String idString
        25: .line 150
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        26: .line 151
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            aload 3 /* idString */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.jdi.Packet
            astore 2 /* p2 */
        start local 2 // com.sun.tools.jdi.Packet p2
        27: .line 153
            aload 2 /* p2 */
            ifnull 29
        28: .line 154
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            aload 3 /* idString */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        29: .line 150
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet com.sun.tools.jdi.Packet java.lang.String int java.util.Map
      StackMap stack:
            aload 5
            monitorexit
        30: goto 33
        end local 2 // com.sun.tools.jdi.Packet p2
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top java.lang.String int java.util.Map
      StackMap stack: java.lang.Throwable
        31: aload 5
            monitorexit
        32: athrow
        start local 2 // com.sun.tools.jdi.Packet p2
        33: .line 157
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet com.sun.tools.jdi.Packet java.lang.String int
      StackMap stack:
            aload 2 /* p2 */
            ifnonnull 36
        34: .line 161
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Recieved reply with no sender!"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        35: .line 162
            goto 45
        36: .line 164
      StackMap locals:
      StackMap stack:
            aload 2 /* p2 */
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.errorCode:S
            putfield com.sun.tools.jdi.Packet.errorCode:S
        37: .line 165
            aload 2 /* p2 */
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.data:[B
            putfield com.sun.tools.jdi.Packet.data:[B
        38: .line 166
            aload 2 /* p2 */
            iconst_1
            putfield com.sun.tools.jdi.Packet.replied:Z
        39: .line 168
            aload 2 /* p2 */
            dup
            astore 5
            monitorenter
        40: .line 169
            aload 2 /* p2 */
            invokevirtual java.lang.Object.notify:()V
        41: .line 168
            aload 5
            monitorexit
        42: goto 45
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet com.sun.tools.jdi.Packet java.lang.String int com.sun.tools.jdi.Packet
      StackMap stack: java.lang.Throwable
        43: aload 5
            monitorexit
        44: athrow
        end local 4 // boolean done
        end local 3 // java.lang.String idString
        end local 2 // com.sun.tools.jdi.Packet p2
        45: .line 114
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.shouldListen:Z
            ifne 4
        46: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.vmManager:Lcom/sun/tools/jdi/VirtualMachineManagerImpl;
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            invokevirtual com.sun.tools.jdi.VirtualMachineManagerImpl.disposeVirtualMachine:(Lcom/sun/jdi/VirtualMachine;)V
        47: .line 180
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 4
            monitorenter
        48: .line 181
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5 /* iter */
        start local 5 // java.util.Iterator iter
        49: .line 182
            goto 51
        50: .line 183
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.List java.util.Iterator
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.jdi.EventQueueImpl
            invokevirtual com.sun.tools.jdi.EventQueueImpl.close:()V
        51: .line 182
      StackMap locals:
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 50
        end local 5 // java.util.Iterator iter
        52: .line 180
            aload 4
            monitorexit
        53: goto 56
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.List
      StackMap stack: java.lang.Throwable
        54: aload 4
            monitorexit
        55: athrow
        56: .line 189
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            dup
            astore 4
            monitorenter
        57: .line 190
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5 /* iter */
        start local 5 // java.util.Iterator iter
        58: .line 191
            goto 66
        59: .line 192
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.Map java.util.Iterator
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.jdi.Packet
            astore 6 /* packet */
        start local 6 // com.sun.tools.jdi.Packet packet
        60: .line 193
            aload 6 /* packet */
            dup
            astore 7
            monitorenter
        61: .line 194
            aload 6 /* packet */
            invokevirtual java.lang.Object.notify:()V
        62: .line 193
            aload 7
            monitorexit
        63: goto 66
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.Map java.util.Iterator com.sun.tools.jdi.Packet com.sun.tools.jdi.Packet
      StackMap stack: java.lang.Throwable
        64: aload 7
            monitorexit
        65: athrow
        end local 6 // com.sun.tools.jdi.Packet packet
        66: .line 191
      StackMap locals:
      StackMap stack:
            aload 5 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 59
        67: .line 197
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        end local 5 // java.util.Iterator iter
        68: .line 189
            aload 4
            monitorexit
        69: goto 72
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet top top java.util.Map
      StackMap stack: java.lang.Throwable
        70: aload 4
            monitorexit
        71: athrow
        72: .line 200
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            iconst_1
            iand
            ifeq 74
        73: .line 201
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            ldc "Target VM interface thread exiting"
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
        74: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.jdi.Packet p
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   75     0      this  Lcom/sun/tools/jdi/TargetVM;
            3   75     1         p  Lcom/sun/tools/jdi/Packet;
           27   31     2        p2  Lcom/sun/tools/jdi/Packet;
           33   45     2        p2  Lcom/sun/tools/jdi/Packet;
           25   45     3  idString  Ljava/lang/String;
            5   45     4      done  Z
            6    9     5         b  [B
           49   52     5      iter  Ljava/util/Iterator;
           58   68     5      iter  Ljava/util/Iterator;
           60   66     6    packet  Lcom/sun/tools/jdi/Packet;
      Exception table:
        from    to  target  type
           5     9      10  Class java.io.IOException
          14    15      16  Class java.io.IOException
          26    30      31  any
          31    32      31  any
          40    42      43  any
          43    44      43  any
          48    53      54  any
          54    55      54  any
          61    63      64  any
          64    65      64  any
          57    69      70  any
          70    71      70  any

  protected void handleVMCommand(com.sun.tools.jdi.Packet);
    descriptor: (Lcom/sun/tools/jdi/Packet;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet p
         0: .line 206
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.cmdSet:S
            tableswitch { // 64 - 64
                   64: 1
              default: 3
          }
         1: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.sun.tools.jdi.TargetVM.handleEventCmdSet:(Lcom/sun/tools/jdi/Packet;)V
         2: .line 209
            goto 7
         3: .line 212
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Ignoring cmd "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.id:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 213
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.cmdSet:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* p */
            getfield com.sun.tools.jdi.Packet.cmd:S
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " from the VM"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 212
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 214
            return
         7: .line 216
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.jdi.Packet p
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/tools/jdi/TargetVM;
            0    8     1     p  Lcom/sun/tools/jdi/Packet;
    MethodParameters:
      Name  Flags
      p     

  protected void handleEventCmdSet(com.sun.tools.jdi.Packet);
    descriptor: (Lcom/sun/tools/jdi/Packet;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet p
         0: .line 228
            new com.sun.tools.jdi.EventSetImpl
            dup
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            aload 1 /* p */
            invokespecial com.sun.tools.jdi.EventSetImpl.<init>:(Lcom/sun/jdi/VirtualMachine;Lcom/sun/tools/jdi/Packet;)V
            astore 2 /* eventSet */
        start local 2 // com.sun.jdi.event.EventSet eventSet
         1: .line 230
            aload 2 /* eventSet */
            ifnull 3
         2: .line 231
            aload 0 /* this */
            aload 2 /* eventSet */
            invokevirtual com.sun.tools.jdi.TargetVM.queueEventSet:(Lcom/sun/jdi/event/EventSet;)V
         3: .line 233
      StackMap locals: com.sun.jdi.event.EventSet
      StackMap stack:
            return
        end local 2 // com.sun.jdi.event.EventSet eventSet
        end local 1 // com.sun.tools.jdi.Packet p
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/sun/tools/jdi/TargetVM;
            0    4     1         p  Lcom/sun/tools/jdi/Packet;
            1    4     2  eventSet  Lcom/sun/jdi/event/EventSet;
    MethodParameters:
      Name  Flags
      p     

  private com.sun.tools.jdi.TargetVM$EventController eventController();
    descriptor: ()Lcom/sun/tools/jdi/TargetVM$EventController;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 236
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
            ifnonnull 2
         1: .line 237
            aload 0 /* this */
            new com.sun.tools.jdi.TargetVM$EventController
            dup
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            invokespecial com.sun.tools.jdi.TargetVM$EventController.<init>:(Lcom/sun/tools/jdi/VirtualMachineImpl;)V
            putfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
         2: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventController:Lcom/sun/tools/jdi/TargetVM$EventController;
            areturn
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/jdi/TargetVM;

  private synchronized void controlEventFlow(int);
    descriptor: (I)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // int maxQueueSize
         0: .line 243
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
            ifne 4
            iload 1 /* maxQueueSize */
            sipush 2000
            if_icmple 4
         1: .line 244
            aload 0 /* this */
            invokevirtual com.sun.tools.jdi.TargetVM.eventController:()Lcom/sun/tools/jdi/TargetVM$EventController;
            invokevirtual com.sun.tools.jdi.TargetVM$EventController.hold:()V
         2: .line 245
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         3: .line 246
            goto 7
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
            ifeq 7
            iload 1 /* maxQueueSize */
            bipush 100
            if_icmpge 7
         5: .line 247
            aload 0 /* this */
            invokevirtual com.sun.tools.jdi.TargetVM.eventController:()Lcom/sun/tools/jdi/TargetVM$EventController;
            invokevirtual com.sun.tools.jdi.TargetVM$EventController.release:()V
         6: .line 248
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.eventsHeld:Z
         7: .line 250
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int maxQueueSize
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lcom/sun/tools/jdi/TargetVM;
            0    8     1  maxQueueSize  I
    MethodParameters:
              Name  Flags
      maxQueueSize  

  void notifyDequeueEventSet();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 253
            iconst_0
            istore 1 /* maxQueueSize */
        start local 1 // int maxQueueSize
         1: .line 254
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 2
            monitorenter
         2: .line 255
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         3: .line 256
            goto 6
         4: .line 257
      StackMap locals: int java.util.List java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.jdi.EventQueueImpl
            astore 4 /* queue */
        start local 4 // com.sun.tools.jdi.EventQueueImpl queue
         5: .line 258
            iload 1 /* maxQueueSize */
            aload 4 /* queue */
            invokevirtual com.sun.tools.jdi.EventQueueImpl.size:()I
            invokestatic java.lang.Math.max:(II)I
            istore 1 /* maxQueueSize */
        end local 4 // com.sun.tools.jdi.EventQueueImpl queue
         6: .line 256
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 3 // java.util.Iterator iter
         7: .line 254
            aload 2
            monitorexit
         8: goto 11
      StackMap locals: com.sun.tools.jdi.TargetVM int java.util.List
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* maxQueueSize */
            invokevirtual com.sun.tools.jdi.TargetVM.controlEventFlow:(I)V
        12: .line 262
            return
        end local 1 // int maxQueueSize
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/sun/tools/jdi/TargetVM;
            1   13     1  maxQueueSize  I
            3    7     3          iter  Ljava/util/Iterator;
            5    6     4         queue  Lcom/sun/tools/jdi/EventQueueImpl;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any

  private void queueEventSet(com.sun.jdi.event.EventSet);
    descriptor: (Lcom/sun/jdi/event/EventSet;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.jdi.event.EventSet eventSet
         0: .line 265
            iconst_0
            istore 2 /* maxQueueSize */
        start local 2 // int maxQueueSize
         1: .line 267
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            dup
            astore 3
            monitorenter
         2: .line 268
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
         3: .line 269
            goto 7
         4: .line 270
      StackMap locals: int java.util.List java.util.Iterator
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.jdi.EventQueueImpl
            astore 5 /* queue */
        start local 5 // com.sun.tools.jdi.EventQueueImpl queue
         5: .line 271
            aload 5 /* queue */
            aload 1 /* eventSet */
            invokevirtual com.sun.tools.jdi.EventQueueImpl.enqueue:(Lcom/sun/jdi/event/EventSet;)V
         6: .line 272
            iload 2 /* maxQueueSize */
            aload 5 /* queue */
            invokevirtual com.sun.tools.jdi.EventQueueImpl.size:()I
            invokestatic java.lang.Math.max:(II)I
            istore 2 /* maxQueueSize */
        end local 5 // com.sun.tools.jdi.EventQueueImpl queue
         7: .line 269
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 4 // java.util.Iterator iter
         8: .line 267
            aload 3
            monitorexit
         9: goto 12
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.jdi.event.EventSet int java.util.List
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        12: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* maxQueueSize */
            invokevirtual com.sun.tools.jdi.TargetVM.controlEventFlow:(I)V
        13: .line 277
            return
        end local 2 // int maxQueueSize
        end local 1 // com.sun.jdi.event.EventSet eventSet
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lcom/sun/tools/jdi/TargetVM;
            0   14     1      eventSet  Lcom/sun/jdi/event/EventSet;
            1   14     2  maxQueueSize  I
            3    8     4          iter  Ljava/util/Iterator;
            5    7     5         queue  Lcom/sun/tools/jdi/EventQueueImpl;
      Exception table:
        from    to  target  type
           2     9      10  any
          10    11      10  any
    MethodParameters:
          Name  Flags
      eventSet  

  void send(com.sun.tools.jdi.Packet);
    descriptor: (Lcom/sun/tools/jdi/Packet;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet packet
         0: .line 280
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.id:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            astore 2 /* id */
        start local 2 // java.lang.String id
         1: .line 282
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            dup
            astore 3
            monitorenter
         2: .line 283
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.waitingQueue:Ljava/util/Map;
            aload 2 /* id */
            aload 1 /* packet */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 282
            aload 3
            monitorexit
         4: goto 7
      StackMap locals: com.sun.tools.jdi.TargetVM com.sun.tools.jdi.Packet java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
         5: aload 3
            monitorexit
         6: athrow
         7: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            getstatic com.sun.tools.jdi.VirtualMachineImpl.TRACE_RAW_SENDS:I
            iand
            ifeq 9
         8: .line 287
            aload 0 /* this */
            aload 1 /* packet */
            iconst_1
            invokevirtual com.sun.tools.jdi.TargetVM.dumpPacket:(Lcom/sun/tools/jdi/Packet;Z)V
         9: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
            aload 1 /* packet */
            invokevirtual com.sun.tools.jdi.Packet.toByteArray:()[B
            invokevirtual com.sun.jdi.connect.spi.Connection.writePacket:([B)V
        10: .line 292
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        11: astore 3 /* e */
        start local 3 // java.io.IOException e
        12: .line 293
            new com.sun.jdi.VMDisconnectedException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial com.sun.jdi.VMDisconnectedException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.io.IOException e
        13: .line 295
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String id
        end local 1 // com.sun.tools.jdi.Packet packet
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lcom/sun/tools/jdi/TargetVM;
            0   14     1  packet  Lcom/sun/tools/jdi/Packet;
            1   14     2      id  Ljava/lang/String;
           12   13     3       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
           9    10      11  Class java.io.IOException
    MethodParameters:
        Name  Flags
      packet  

  void waitForReply(com.sun.tools.jdi.Packet);
    descriptor: (Lcom/sun/tools/jdi/Packet;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.Packet packet
         0: .line 298
            aload 1 /* packet */
            dup
            astore 2
            monitorenter
         1: .line 299
            goto 5
         2: .line 300
      StackMap locals: com.sun.tools.jdi.Packet
      StackMap stack:
            aload 1 /* packet */
            invokevirtual java.lang.Object.wait:()V
         3: goto 5
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         4: pop
         5: .line 299
      StackMap locals:
      StackMap stack:
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.replied:Z
            ifne 6
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.shouldListen:Z
            ifne 2
         6: .line 303
      StackMap locals:
      StackMap stack:
            aload 1 /* packet */
            getfield com.sun.tools.jdi.Packet.replied:Z
            ifne 8
         7: .line 304
            new com.sun.jdi.VMDisconnectedException
            dup
            invokespecial com.sun.jdi.VMDisconnectedException.<init>:()V
            athrow
         8: .line 298
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 307
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.jdi.Packet packet
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/sun/tools/jdi/TargetVM;
            0   13     1  packet  Lcom/sun/tools/jdi/Packet;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InterruptedException
           1     9      10  any
          10    11      10  any
    MethodParameters:
        Name  Flags
      packet  

  void addEventQueue(com.sun.tools.jdi.EventQueueImpl);
    descriptor: (Lcom/sun/tools/jdi/EventQueueImpl;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.jdi.TargetVM this
        start local 1 // com.sun.tools.jdi.EventQueueImpl queue
         0: .line 310
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            iconst_4
            iand
            ifeq 2
         1: .line 311
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            ldc "New event queue added"
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
         2: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.eventQueues:Ljava/util/List;
            aload 1 /* queue */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 314
            return
        end local 1 // com.sun.tools.jdi.EventQueueImpl queue
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/sun/tools/jdi/TargetVM;
            0    4     1  queue  Lcom/sun/tools/jdi/EventQueueImpl;
    MethodParameters:
       Name  Flags
      queue  

  void stopListening();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.jdi.TargetVM this
         0: .line 317
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            getfield com.sun.tools.jdi.VirtualMachineImpl.traceFlags:I
            iconst_4
            iand
            ifeq 2
         1: .line 318
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.vm:Lcom/sun/tools/jdi/VirtualMachineImpl;
            ldc "Target VM i/f closing event queues"
            invokevirtual com.sun.tools.jdi.VirtualMachineImpl.printTrace:(Ljava/lang/String;)V
         2: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.jdi.TargetVM.shouldListen:Z
         3: .line 322
            aload 0 /* this */
            getfield com.sun.tools.jdi.TargetVM.connection:Lcom/sun/jdi/connect/spi/Connection;
            invokevirtual com.sun.jdi.connect.spi.Connection.close:()V
         4: .line 323
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         5: pop
         6: .line 324
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.tools.jdi.TargetVM this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/jdi/TargetVM;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
}
SourceFile: "TargetVM.java"
NestMembers:
  com.sun.tools.jdi.TargetVM$EventController
InnerClasses:
  private EventController = com.sun.tools.jdi.TargetVM$EventController of com.sun.tools.jdi.TargetVM