--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/com/sun/jdi/ControlFlow.java Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,79 @@
+/* /nodynamiccopyright/ */ // hard coded linenumbers in other tests - DO NOT CHANGE
+/*
+ * Debuggee which exercises various types of control flow
+ */
+
+class ControlFlow {
+ boolean b = true;
+ int n = 22;
+
+ public static void main(String args[]) throws Exception {
+ (new ControlFlow()).go();
+ }
+
+ void go() throws Exception {
+ if (b) {
+ System.out.println("if, no else");
+ }
+
+ if (b) {
+ System.out.println("if branch");
+ } else {
+ throw new Exception("Wrong branch!?");
+ }
+
+ if (!b) {
+ throw new Exception("Wrong branch!?");
+ } else {
+ System.out.println("else branch");
+ }
+
+ try {
+ throw new Exception();
+ } catch (Exception e) {
+ System.out.println("caught exception");
+ } finally {
+ System.out.println("finally");
+ }
+
+ // This isn't control flow at the source level, but it is at the bytecode level
+ synchronized (this) {
+ System.out.println("synchronized");
+ }
+
+
+ for (int i = 0; i < n; i++) {
+ System.out.println("Loop iteration: " + (i+1) + "/" + n);
+ }
+
+ switch (n) {
+ case 0:
+ throw new Exception("Wrong branch!?");
+ case 1:
+ throw new Exception("Wrong branch!?");
+ case 2:
+ throw new Exception("Wrong branch!?");
+ case 3:
+ throw new Exception("Wrong branch!?");
+ case 22:
+ System.out.println("switch case");
+ break;
+ default:
+ throw new Exception("Wrong branch!?");
+ }
+
+ switch (n) {
+ case 0:
+ throw new Exception("Wrong branch!?");
+ case 1:
+ throw new Exception("Wrong branch!?");
+ case 2:
+ throw new Exception("Wrong branch!?");
+ case 3:
+ throw new Exception("Wrong branch!?");
+ default:
+ System.out.println("switch default");
+ break;
+ }
+ }
+}