| /******************************************************************************* |
| * Copyright (c) 2016 Till Brychcy and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Till Brychcy - initial API and implementation |
| *******************************************************************************/ |
| |
| public class StepResult1 { |
| class Nested { |
| String f() { |
| return "f-" + g(); |
| } |
| } |
| |
| // private to force usage of a synthetic accessor |
| private String g() { |
| String prefix = "g-"; |
| String val1 = prefix + h(); |
| String val2 = j(false); |
| return val1 + "-" + val2; // bp2C |
| } |
| |
| String h() { |
| String prefix = "h-"; // bp1 |
| try { |
| return i(false); |
| } catch (Exception e) { |
| // when the thread is stopped here, it is exactly 5 bytes after the i(false) invocation in the byte code |
| return prefix + e.getMessage(); |
| } |
| } |
| |
| String i(boolean flag) { |
| if (flag) { |
| return "i"; |
| } |
| String value = i(true); // bp3 |
| throw new RuntimeException(value); |
| } |
| |
| String j(boolean flag) { |
| if (flag) { |
| return "j"; |
| } |
| String value = j(true); // bp2A |
| return value; // bp2B |
| } |
| |
| static String x = "x"; |
| |
| public static String s() { |
| return "bla"; // bp4 |
| } |
| |
| interface I { |
| String get(); |
| } |
| |
| public void testViaInterface() { |
| I i = new I() { |
| public String get() { |
| return "bla"; // bp5 |
| }; |
| }; |
| i.get(); |
| } |
| public static void main(String[] args) { |
| new StepResult1().new Nested().f(); |
| s(); |
| "".length(); |
| new StepResult1().testViaInterface();; |
| } |
| } |