15f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/* 25f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 35f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * contributor license agreements. See the NOTICE file distributed with 45f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * this work for additional information regarding copyright ownership. 55f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 65f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * (the "License"); you may not use this file except in compliance with 75f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * the License. You may obtain a copy of the License at 85f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 95f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Unless required by applicable law or agreed to in writing, software 125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * See the License for the specific language governing permissions and 165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * limitations under the License. 175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/** 205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @author Anton V. Karnachuk 215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/** 245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Created on 17.03.2005 255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespackage org.apache.harmony.jpda.tests.framework.jdwp; 275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.framework.TestErrorException; 295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/** 315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * This class represent parsed EventPacket with received event set data. 325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespublic class ParsedEvent { 345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private byte suspendPolicy; 365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private int requestID; 385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private byte eventKind; 405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Create new instance with specified data. 435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes protected ParsedEvent(byte suspendPolicy, Packet packet, byte eventKind) { 455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.suspendPolicy = suspendPolicy; 465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.requestID = packet.getNextValueAsInt(); 475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.eventKind = eventKind; 485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Returns RequestID of this event set. 525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return RequestID of this event set 545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public int getRequestID() { 565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return requestID; 575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Returns suspend policy of this event set. 615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return suspend policy of this event set 635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public byte getSuspendPolicy() { 655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return suspendPolicy; 665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the eventKind. 705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public byte getEventKind() { 725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return eventKind; 735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class extends ParsedEvent by associating it with a thread. 775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static class EventThread extends ParsedEvent { 795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long threadID; 815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes protected EventThread(byte suspendPolicy, Packet packet, byte eventKind) { 895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, eventKind); 905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.threadID = packet.getNextValueAsThreadID(); 915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the thread id. 955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getThreadID() { 975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return threadID; 985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class extends EventThread by associating it with a location. 1035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1043df0c797781000302737ead55196b6e110d8db9cSebastien Hertz public static class EventThreadLocation extends EventThread { 1055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Location location; 1075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 1105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 1125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 1135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes protected EventThreadLocation(byte suspendPolicy, Packet packet, 1155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes byte eventKind) { 1165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, eventKind); 1175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.location = packet.getNextValueAsLocation(); 1185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the location. 1225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public Location getLocation() { 1245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return location; 1255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class extends EventThread by associating it with monitor object and location. 1305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private static class EventThreadMonitor extends EventThread { 1325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private TaggedObject taggedObject; 1345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Location location; 1355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 1385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 1405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 1415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes protected EventThreadMonitor(byte suspendPolicy, Packet packet, 1435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes byte eventKind) { 1445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, eventKind); 1455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.taggedObject = packet.getNextValueAsTaggedObject(); 1465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.location = packet.getNextValueAsLocation(); 1475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the location. 1515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public Location getLocation() { 1535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return location; 1545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the taggedObject. 1585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public TaggedObject getTaggedObject() { 1605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return taggedObject; 1615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP VM_START event. 1665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_VM_START extends EventThread { 1685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 1715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 1735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 1745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_VM_START(byte suspendPolicy, Packet packet) { 1765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.VM_START); 1775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 1795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP SINGLE_STEP event. 1825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_SINGLE_STEP extends EventThreadLocation { 1845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 1875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 1885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 1895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 1905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_SINGLE_STEP(byte suspendPolicy, Packet packet) { 1925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.SINGLE_STEP); 1935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 1955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 1965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 1975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP BREAKPOINT event. 1985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 1995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_BREAKPOINT extends EventThreadLocation { 2005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 2035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 2045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 2055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 2065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_BREAKPOINT(byte suspendPolicy, Packet packet) { 2085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.BREAKPOINT); 2095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP METHOD_ENTRY event. 2145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_METHOD_ENTRY extends EventThreadLocation { 2165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 2195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 2205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 2215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 2225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_METHOD_ENTRY(byte suspendPolicy, Packet packet) { 2245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.METHOD_ENTRY); 2255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP METHOD_EXIT event. 2305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_METHOD_EXIT extends EventThreadLocation { 2325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 2355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 2365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 2375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 2385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_METHOD_EXIT(byte suspendPolicy, Packet packet) { 2405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.METHOD_EXIT); 2415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP METHOD_EXIT_WITH_RETURN_VALUE event. 2465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_METHOD_EXIT_WITH_RETURN_VALUE extends EventThreadLocation { 2485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Value returnValue; 2505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 2535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 2545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 2555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 2565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_METHOD_EXIT_WITH_RETURN_VALUE(byte suspendPolicy, Packet packet) { 2585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.METHOD_EXIT_WITH_RETURN_VALUE); 2595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes returnValue = packet.getNextValueAsValue(); 2605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public Value getReturnValue(){ 2635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return returnValue; 2645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP MONITOR_CONTENDED_ENTER event. 2695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_MONITOR_CONTENDED_ENTER extends EventThreadMonitor { 2715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 2745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 2755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 2765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 2775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_MONITOR_CONTENDED_ENTER(byte suspendPolicy, Packet packet) { 2795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.MONITOR_CONTENDED_ENTER); 2805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP MONITOR_CONTENDED_ENTERED event. 2865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_MONITOR_CONTENDED_ENTERED extends EventThreadMonitor { 2885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 2905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 2915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 2925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 2935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 2945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 2955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_MONITOR_CONTENDED_ENTERED(byte suspendPolicy, Packet packet) { 2965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.MONITOR_CONTENDED_ENTERED); 2975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 2985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 2995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP METHOD_EXIT_WITH_RETURN_VALUE event. 3035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_MONITOR_WAIT extends EventThreadMonitor { 3055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long timeout; 3075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 3105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 3125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 3135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_MONITOR_WAIT(byte suspendPolicy, Packet packet) { 3155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.MONITOR_WAIT); 3165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.timeout = packet.getNextValueAsLong(); 3175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getTimeout(){ 3205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return timeout; 3215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP METHOD_EXIT_WITH_RETURN_VALUE event. 3265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_MONITOR_WAITED extends EventThreadMonitor { 3285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private boolean timed_out; 3305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 3335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 3355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 3365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_MONITOR_WAITED(byte suspendPolicy, Packet packet) { 3385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.MONITOR_WAITED); 3395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes this.timed_out = packet.getNextValueAsBoolean(); 3405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public boolean getTimedout(){ 3435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return timed_out; 3445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP EXCEPTION event. 3495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_EXCEPTION extends EventThreadLocation { 3515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private TaggedObject exception; 3535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Location catchLocation; 3555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 3585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 3605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 3615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_EXCEPTION(byte suspendPolicy, Packet packet) { 3635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.EXCEPTION); 3645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes exception = packet.getNextValueAsTaggedObject(); 3655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes catchLocation = packet.getNextValueAsLocation(); 3665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the location of the caught exception. 3705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public Location getCatchLocation() { 3725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return catchLocation; 3735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the exception. 3775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public TaggedObject getException() { 3795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return exception; 3805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP THREAD_START event. 3855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_THREAD_START extends EventThread { 3875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 3895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 3905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 3915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 3925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 3935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 3945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_THREAD_START(byte suspendPolicy, Packet packet) { 3955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.THREAD_START); 3965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 3975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 3985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP THREAD_DEATH event. 4015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_THREAD_DEATH extends EventThread { 4035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 4065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 4075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 4085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 4095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_THREAD_DEATH(byte suspendPolicy, Packet packet) { 4115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.THREAD_DEATH); 4125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 4135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 4145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP CLASS_PREPARE event. 4175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_CLASS_PREPARE extends EventThread { 4195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private byte refTypeTag; 4215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long typeID; 4235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private String signature; 4255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private int status; 4275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 4305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 4315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 4325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 4335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes protected Event_CLASS_PREPARE(byte suspendPolicy, Packet packet) { 4355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.CLASS_PREPARE); 4365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes refTypeTag = packet.getNextValueAsByte(); 4375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes typeID = packet.getNextValueAsReferenceTypeID(); 4385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes signature = packet.getNextValueAsString(); 4395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes status = packet.getNextValueAsInt(); 4405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 4415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the refTypeTag. 4445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public byte getRefTypeTag() { 4465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return refTypeTag; 4475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 4485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the signature. 4515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public String getSignature() { 4535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return signature; 4545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 4555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the status. 4585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public int getStatus() { 4605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return status; 4615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 4625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the typeID. 4655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getTypeID() { 4675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return typeID; 4685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 4695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 4705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP CLASS_UNLOAD event. 4735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_CLASS_UNLOAD extends ParsedEvent { 4755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private String signature; 4775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 4805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 4815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 4825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 4835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_CLASS_UNLOAD(byte suspendPolicy, Packet packet) { 4855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.CLASS_UNLOAD); 4865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes signature = packet.getNextValueAsString(); 4875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 4885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the signature. 4915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 4925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public String getSignature() { 4935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return signature; 4945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 4955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 4965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 4975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 4985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP FIELD_ACCESS event. 4995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_FIELD_ACCESS extends EventThreadLocation { 5015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private byte refTypeTag; 5035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long typeID; 5055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long fieldID; 5075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private TaggedObject object; 5095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 5125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 5135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 5145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 5155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_FIELD_ACCESS(byte suspendPolicy, Packet packet) { 5175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.FIELD_ACCESS); 5185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes refTypeTag = packet.getNextValueAsByte(); 5195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes typeID = packet.getNextValueAsReferenceTypeID(); 5205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes fieldID = packet.getNextValueAsFieldID(); 5215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes object = packet.getNextValueAsTaggedObject(); 5225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 5235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the fieldID. 5265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getFieldID() { 5285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return fieldID; 5295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 5305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the object. 5335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public TaggedObject getObject() { 5355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return object; 5365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 5375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the refTypeTag. 5405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public byte getRefTypeTag() { 5425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return refTypeTag; 5435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 5445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the typeID. 5475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getTypeID() { 5495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return typeID; 5505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 5515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 5525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP FIELD_MODIFICATION event. 5555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_FIELD_MODIFICATION extends 5575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes EventThreadLocation { 5585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private byte refTypeTag; 5595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long typeID; 5615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private long fieldID; 5635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private TaggedObject object; 5655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Value valueToBe; 5675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 5705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 5715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 5725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_FIELD_MODIFICATION(byte suspendPolicy, Packet packet) { 5745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, 5755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes JDWPConstants.EventKind.FIELD_MODIFICATION); 5765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes refTypeTag = packet.getNextValueAsByte(); 5775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes typeID = packet.getNextValueAsReferenceTypeID(); 5785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes fieldID = packet.getNextValueAsFieldID(); 5795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes object = packet.getNextValueAsTaggedObject(); 5805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes valueToBe = packet.getNextValueAsValue(); 5815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 5825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the fieldID. 5855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getFieldID() { 5875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return fieldID; 5885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 5895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the object. 5925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 5935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public TaggedObject getObject() { 5945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return object; 5955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 5965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 5975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 5985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the refTypeTag. 5995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 6005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public byte getRefTypeTag() { 6015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return refTypeTag; 6025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 6055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the typeID. 6065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 6075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public long getTypeID() { 6085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return typeID; 6095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 6125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return Returns the valueToBe. 6135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 6145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public Value getValueToBe() { 6155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return valueToBe; 6165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 6185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 6205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * The class implements JDWP VM_DEATH event. 6215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 6225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static final class Event_VM_DEATH extends ParsedEvent { 6235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 6245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * A constructor. 6255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param suspendPolicy 6265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 6275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 6285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes private Event_VM_DEATH(byte suspendPolicy, Packet packet) { 6295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes super(suspendPolicy, packet, JDWPConstants.EventKind.VM_DEATH); 6305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes }; 6325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes /** 6345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Returns array of ParsedEvent extracted from given EventPacket. 6355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * 6365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @param packet 6375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * EventPacket to parse events 6385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * @return array of extracted ParsedEvents 6395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 6405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static ParsedEvent[] parseEventPacket(Packet packet) { 6415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes Packet packetCopy = new Packet(packet.toBytesArray()); 6435f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes // Suspend Policy field 6455f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes byte suspendPolicy = packetCopy.getNextValueAsByte(); 6465f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6475f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes // Number of events 6485f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int eventCount = packetCopy.getNextValueAsInt(); 6495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ParsedEvent[] events = new ParsedEvent[eventCount]; 6515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 6525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes // For all events in packet 6535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes for (int i = 0; i < eventCount; i++) { 6545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes byte eventKind = packetCopy.getNextValueAsByte(); 6555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes switch (eventKind) { 6565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.VM_START: { 6575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_VM_START(suspendPolicy, packetCopy); 6585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.SINGLE_STEP: { 6615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_SINGLE_STEP(suspendPolicy, packetCopy); 6625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.BREAKPOINT: { 6655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_BREAKPOINT(suspendPolicy, packetCopy); 6665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.METHOD_ENTRY: { 6695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_METHOD_ENTRY(suspendPolicy, packetCopy); 6705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.METHOD_EXIT: { 6735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_METHOD_EXIT(suspendPolicy, packetCopy); 6745f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6755f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.METHOD_EXIT_WITH_RETURN_VALUE: { 6775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_METHOD_EXIT_WITH_RETURN_VALUE(suspendPolicy, packetCopy); 6785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.MONITOR_CONTENDED_ENTER: { 6815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_MONITOR_CONTENDED_ENTER(suspendPolicy, packetCopy); 6825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.MONITOR_CONTENDED_ENTERED: { 6855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_MONITOR_CONTENDED_ENTERED(suspendPolicy, packetCopy); 6865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.MONITOR_WAIT: { 6895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_MONITOR_WAIT(suspendPolicy, packetCopy); 6905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.MONITOR_WAITED: { 6935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_MONITOR_WAITED(suspendPolicy, packetCopy); 6945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 6965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.EXCEPTION: { 6975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_EXCEPTION(suspendPolicy, packetCopy); 6985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 6995f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7005f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.THREAD_START: { 7015f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_THREAD_START(suspendPolicy, packetCopy); 7025f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 7035f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7045f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.THREAD_DEATH: { 7055f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_THREAD_DEATH(suspendPolicy, packetCopy); 7065f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 7075f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7085f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.CLASS_PREPARE: { 7095f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_CLASS_PREPARE(suspendPolicy, packetCopy); 7105f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 7115f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7125f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.CLASS_UNLOAD: { 7135f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_CLASS_UNLOAD(suspendPolicy, packetCopy); 7145f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 7155f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7165f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.FIELD_ACCESS: { 7175f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_FIELD_ACCESS(suspendPolicy, packetCopy); 7185f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 7195f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7205f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.FIELD_MODIFICATION: { 7215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_FIELD_MODIFICATION(suspendPolicy, 7225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes packetCopy); 7235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 7245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes case JDWPConstants.EventKind.VM_DEATH: { 7265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes events[i] = new Event_VM_DEATH(suspendPolicy, packetCopy); 7275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes break; 7285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes default: { 7305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes throw new TestErrorException("Unexpected kind of event: " 7315f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes + eventKind); 7325f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes return events; 7365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 7375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 7385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes} 739