01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: *
15: * See the License for the specific language governing permissions and
16: * limitations under the License.
17: */
18:
19: /**
20: * @author Aleksander V. Budniy
21: * @version $Revision: 1.2 $
22: */
23:
24: /**
25: * Created on 1.05.2006
26: */package org.apache.harmony.jpda.tests.jdwp.StackFrame;
27:
28: import org.apache.harmony.jpda.tests.share.JPDADebuggeeSynchronizer;
29: import org.apache.harmony.jpda.tests.share.SyncDebuggee;
30:
31: public class PopFramesDebuggee extends SyncDebuggee {
32:
33: public static final String METHOD_TO_INVOKE_NAME = "methodToInvoke";
34:
35: public static long methodToInvoke(long timeToSleep) {
36:
37: Object obj = new Object();
38: synchronized (obj) {
39: try {
40: obj.wait(timeToSleep);
41: } catch (Exception e) {
42: e.printStackTrace();
43: }
44: }
45: return timeToSleep;
46: }
47:
48: public static void main(String[] args) {
49: runDebuggee(PopFramesDebuggee.class);
50: }
51:
52: public void run() {
53: logWriter.println("Entering nestledMethod1");
54: nestledMethod1();
55: }
56:
57: private void nestledMethod1() {
58: logWriter.println("Entering nestledMethod2");
59: nestledMethod2();
60: }
61:
62: private void nestledMethod2() {
63: logWriter.println("Entering nestledMethod3");
64: //next line for breakpoint
65: nestledMethod3();
66: }
67:
68: private void nestledMethod3() {
69: synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
70: synchronizer
71: .receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
72: logWriter.println("Entering nestledMethod4");
73: //next line for breakpoint
74: nestledMethod4();
75: }
76:
77: private void nestledMethod4() {
78: boolean boolLocalVariable = true;
79: int intLocalVariable = -512;
80: String strLocalVariable = "test string";
81: logWriter.println("nestledMethod4 achieved");
82: logWriter.println("boolLocalVariable = " + boolLocalVariable);
83: logWriter.println("intLocalVariable = " + intLocalVariable);
84: logWriter.println("strLocalVariable = " + strLocalVariable);
85:
86: synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_READY);
87: synchronizer
88: .receiveMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);
89: logWriter.println("PopFramesDebuggee is ended");
90: }
91:
92: }
|