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 Anatoly F. Bondarenko 215f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 225f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 235f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes/** 245f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes * Created on 13.07.2005 255f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes */ 265f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespackage org.apache.harmony.jpda.tests.jdwp.ObjectReference; 275f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 285f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer; 295f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesimport org.apache.harmony.jpda.tests.share.SyncDebuggee; 305f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 3105dfc9424b738285498bbd66344de8853048b0a4Paul Duffinimport java.util.Arrays; 3205dfc9424b738285498bbd66344de8853048b0a4Paul Duffin 335f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughespublic class GetValues003Debuggee extends SyncDebuggee { 345f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 355f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes static GetValues003Debuggee testedObject; 365f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 375f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes int intArrayField[]; // JDWP_TAG_ARRAY = 91 385f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes GetValues003Debuggee objectArrayField[]; // JDWP_TAG_ARRAY = 91 395f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes GetValues003Debuggee objectField; // JDWP_TAG_OBJECT = 76 405f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes String stringField; // JDWP_TAG_STRING = 115 415f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes Thread threadField; // JDWP_TAG_THREAD = 116 425f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ThreadGroup threadGroupField; // JDWP_TAG_THREAD_GROUP = 103 43e1833aa2673d4f975ad35e7a39317feeea922fe1Sebastien Hertz Class<?> classField; // JDWP_TAG_CLASS_OBJECT = 99 445f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes ClassLoader classLoaderField; // DWP_TAG_CLASS_LOADER = 108 45e1833aa2673d4f975ad35e7a39317feeea922fe1Sebastien Hertz 46e1833aa2673d4f975ad35e7a39317feeea922fe1Sebastien Hertz 47e1833aa2673d4f975ad35e7a39317feeea922fe1Sebastien Hertz 48e1833aa2673d4f975ad35e7a39317feeea922fe1Sebastien Hertz @Override 495f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public void run() { 505f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("--> Debuggee: GetValues003Debuggee: START"); 515f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject = new GetValues003Debuggee(); 525f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 535f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.intArrayField = new int[1]; 545f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.intArrayField[0]= 999; 555f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.objectArrayField = new GetValues003Debuggee[1]; 565f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.objectArrayField[0] = new GetValues003Debuggee(); 575f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.objectField = new GetValues003Debuggee(); 585f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.stringField = "stringField"; 595f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.threadField = new GetValues003DebuggeeThread(); 605f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.threadGroupField = new ThreadGroup("ThreadGroupName"); 615f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.classField = GetValues003Debuggee.class; 625f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.classLoaderField = testedObject.classField.getClassLoader(); 635f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 645f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.intArrayField = null; 655f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.objectArrayField = null; 665f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.objectField = null; 675f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.stringField = null; 685f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.threadField = null; 695f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.threadGroupField = null; 705f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.classField = null; 715f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes testedObject.classLoaderField = null; 725f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 735f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("\n--> Debuggee: GetValues003Debuggee: Before ObjectReference::GetValues command:"); 7405dfc9424b738285498bbd66344de8853048b0a4Paul Duffin logWriter.println("--> intArrayField value = " + Arrays.toString(testedObject.intArrayField)); 7505dfc9424b738285498bbd66344de8853048b0a4Paul Duffin logWriter.println("--> objectArrayField value = " + Arrays.toString(testedObject.objectArrayField)); 765f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("--> objectField value = " + testedObject.objectField); 775f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("--> stringField value = " + testedObject.stringField); 785f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("--> threadField value = " + testedObject.threadField); 795f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("--> threadGroupField value = " + testedObject.threadGroupField); 805f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("--> classField value = " + testedObject.classField); 815f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("--> classLoaderField value = " + testedObject.classLoaderField); 825f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 835f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY); 845f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 855f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes synchronizer.receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE); 865f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 875f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes logWriter.println("--> Debuggee: GetValues003Debuggee: FINISH"); 885f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 895f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 905f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public static void main(String [] args) { 915f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes runDebuggee(GetValues003Debuggee.class); 925f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 935f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes} 945f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes 955f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughesclass GetValues003DebuggeeThread extends Thread { 965f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes public void myMethod() { 975f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes } 985f0a23683aa603d8c50b6dd071a565821b76067bElliott Hughes} 99