144N/A/*
2362N/A * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
144N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
144N/A *
144N/A * This code is free software; you can redistribute it and/or modify it
144N/A * under the terms of the GNU General Public License version 2 only, as
144N/A * published by the Free Software Foundation.
144N/A *
144N/A * This code is distributed in the hope that it will be useful, but WITHOUT
144N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
144N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
144N/A * version 2 for more details (a copy is included in the LICENSE file that
144N/A * accompanied this code).
144N/A *
144N/A * You should have received a copy of the GNU General Public License version
144N/A * 2 along with this work; if not, write to the Free Software Foundation,
144N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
144N/A *
2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A * or visit www.oracle.com if you need additional information or have any
2362N/A * questions.
144N/A */
144N/A
144N/Aimport java.lang.reflect.Method;
144N/A
144N/Apublic class RedefineMethodAddInvokeTarget {
144N/A public void test(int counter) throws Exception {
144N/A Method method = getClass().getDeclaredMethod("myMethod" +
144N/A (counter == 0 ? "" : counter));
144N/A method.setAccessible(true);
144N/A method.invoke(this);
144N/A }
144N/A
144N/A public void myMethod() {
144N/A System.out.println("Hello from the non-EMCP again myMethod()!");
144N/A }
144N/A
144N/A private final void myMethod1() {
144N/A System.out.println("Hello from myMethod1()!");
144N/A System.out.println("Calling myMethod() from myMethod1():");
144N/A myMethod();
144N/A }
144N/A
144N/A private final void myMethod2() {
144N/A System.out.println("Hello from myMethod2()!");
144N/A System.out.println("Calling myMethod1() from myMethod2():");
144N/A myMethod1();
144N/A }
144N/A}