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