changeset 7350:7f9f69729934

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
author coleenp
date Wed, 17 Apr 2013 12:50:45 -0400
parents 7ded74ffea36
children 36f9e357b84b
files test/java/lang/instrument/RedefineMethodWithAnnotations.sh test/java/lang/instrument/RedefineMethodWithAnnotationsTarget.java test/java/lang/instrument/RedefineMethodWithAnnotationsTarget_2.java
diffstat 3 files changed, 19 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/test/java/lang/instrument/RedefineMethodWithAnnotations.sh	Wed Apr 17 16:11:19 2013 +0100
+++ b/test/java/lang/instrument/RedefineMethodWithAnnotations.sh	Wed Apr 17 12:50:45 2013 -0400
@@ -68,11 +68,12 @@
     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"
--- a/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget.java	Wed Apr 17 16:11:19 2013 +0100
+++ b/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget.java	Wed Apr 17 12:50:45 2013 -0400
@@ -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);
+    }
 }
--- a/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget_2.java	Wed Apr 17 16:11:19 2013 +0100
+++ b/test/java/lang/instrument/RedefineMethodWithAnnotationsTarget_2.java	Wed Apr 17 12:50:45 2013 -0400
@@ -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);
+    }
 }