From d3b5ff57805bf7daed0889d2afd351a2768c255b Mon Sep 17 00:00:00 2001 From: coleenp Date: Wed, 17 Apr 2013 12:50:45 -0400 Subject: [PATCH] 8009531: Crash when redefining class with annotated method Summary: Add code to annotated methods and command line flags to the tests to verify bug above Reviewed-by: acorn, sspitsyn, dcubed, dholmes, alanb --- .../lang/instrument/RedefineMethodWithAnnotations.sh | 5 +++-- .../RedefineMethodWithAnnotationsTarget.java | 10 ++++++++-- .../RedefineMethodWithAnnotationsTarget_2.java | 10 ++++++++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/test/java/lang/instrument/RedefineMethodWithAnnotations.sh b/test/java/lang/instrument/RedefineMethodWithAnnotations.sh index 9bde206f1..b8f869cd0 100644 --- a/test/java/lang/instrument/RedefineMethodWithAnnotations.sh +++ b/test/java/lang/instrument/RedefineMethodWithAnnotations.sh @@ -68,11 +68,12 @@ cp "${TESTSRC}"/RedefineMethodWithAnnotationsAnnotations.java \ RedefineMethodWithAnnotationsAnnotations.java "${JAVA}" ${TESTVMOPTS} -javaagent:RedefineMethodWithAnnotationsAgent.jar \ + -XX:+StressLdcRewrite -XX:+IgnoreUnrecognizedVMOptions \ -cp "${TESTCLASSES}" RedefineMethodWithAnnotationsApp > output.log 2>&1 cat output.log -MESG="Exception" -grep "$MESG" output.log +MESG="Exception|fatal" +egrep "$MESG" output.log result=$? if [ "$result" = 0 ]; then echo "FAIL: found '$MESG' in the test output" diff --git a/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget.java b/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget.java index 6cfbe21eb..2b67e0987 100644 --- a/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget.java +++ b/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget.java @@ -27,7 +27,13 @@ */ public class RedefineMethodWithAnnotationsTarget { public void annotatedMethod(@ParameterAnnotation( - value = ParameterAnnotation.STRING_VALUE_1) String parameter) { } + value = ParameterAnnotation.STRING_VALUE_1) String parameter) { + System.out.println("First version of annotatedMethod(String)"); + System.out.println("parameter is " + parameter); + } public void annotatedMethod(@ParameterAnnotation( - value = ParameterAnnotation.INT_VALUE_1) int parameter) { } + value = ParameterAnnotation.INT_VALUE_1) int parameter) { + System.out.println("First version of annotatedMethod(int)"); + System.out.println("parameter is " + parameter); + } } diff --git a/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget_2.java b/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget_2.java index 85c430472..eb71d2ab8 100644 --- a/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget_2.java +++ b/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget_2.java @@ -29,7 +29,13 @@ */ public class RedefineMethodWithAnnotationsTarget { public void annotatedMethod(@ParameterAnnotation( - value = ParameterAnnotation.INT_VALUE_2) int parameter) { } + value = ParameterAnnotation.INT_VALUE_2) int parameter) { + System.out.println("Second version of annotatedMethod(int)"); + System.out.println("parameter is " + parameter); + } public void annotatedMethod(@ParameterAnnotation( - value = ParameterAnnotation.STRING_VALUE_2) String parameter) { } + value = ParameterAnnotation.STRING_VALUE_2) String parameter) { + System.out.println("Second version of annotatedMethod(String)"); + System.out.println("parameter is " + parameter); + } } -- GitLab