8009531: Crash when redefining class with annotated method

Add code to annotated methods and command line flags to the tests to verify bug above

Reviewed-by: acorn, sspitsyn, dcubed, dholmes, alanb
This commit is contained in:
Coleen Phillimore 2013-04-17 12:50:45 -04:00
parent aefbf5bd89
commit bdcf6abb46
3 changed files with 19 additions and 6 deletions

View File

@ -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"

View File

@ -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);
}
}

View File

@ -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);
}
}