8162539: Test fails because it expects a blank between method signature and throws exception
authordarcy
Tue, 26 Jul 2016 12:56:26 -0700
changeset 39825 6441823cea46
parent 39824 629cd556bb2e
child 39826 5dba95a26226
child 39875 7a65bed8f877
8162539: Test fails because it expects a blank between method signature and throws exception Reviewed-by: coleenp
jdk/src/java.base/share/classes/java/lang/reflect/Executable.java
jdk/test/java/lang/reflect/Constructor/GenericStringTest.java
jdk/test/java/lang/reflect/Method/GenericStringTest.java
--- a/jdk/src/java.base/share/classes/java/lang/reflect/Executable.java	Tue Jul 26 10:53:20 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/lang/reflect/Executable.java	Tue Jul 26 12:56:26 2016 -0700
@@ -122,7 +122,7 @@
             sb.append(')');
 
             if (exceptionTypes.length > 0) {
-                StringJoiner joiner = new StringJoiner(",", "throws ", "");
+                StringJoiner joiner = new StringJoiner(",", " throws ", "");
                 for (Class<?> exceptionType : exceptionTypes) {
                     joiner.add(exceptionType.getTypeName());
                 }
--- a/jdk/test/java/lang/reflect/Constructor/GenericStringTest.java	Tue Jul 26 10:53:20 2016 -0700
+++ b/jdk/test/java/lang/reflect/Constructor/GenericStringTest.java	Tue Jul 26 12:56:26 2016 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 5033583 6316717 6470106 8161500
+ * @bug 5033583 6316717 6470106 8161500 8162539
  * @summary Check toGenericString() and toString() methods
  * @author Joseph D. Darcy
  */
@@ -41,20 +41,11 @@
                 ExpectedGenericString egs = ctor.getAnnotation(ExpectedGenericString.class);
                 String actual = ctor.toGenericString();
                 System.out.println(actual);
-                if (! egs.value().equals(actual)) {
-                    failures++;
-                    System.err.printf("ERROR: Expected generic string ''%s''; got ''%s''.\n",
-                                      egs.value(), actual);
-                }
+                failures += checkForFailure(egs.value(), actual);
 
                 if (ctor.isAnnotationPresent(ExpectedString.class)) {
-                    ExpectedString es = ctor.getAnnotation(ExpectedString.class);
-                    String result = ctor.toString();
-                    if (! es.value().equals(result)) {
-                        failures++;
-                        System.err.printf("ERROR: Expected ''%s''; got ''%s''.\n",
-                                          es.value(), result);
-                    }
+                    failures += checkForFailure(ctor.getAnnotation(ExpectedString.class).value(),
+                                                ctor.toString());
                 }
             }
 
@@ -63,6 +54,15 @@
             throw new RuntimeException();
         }
     }
+
+    private static int checkForFailure(String expected, String actual) {
+        if (!expected.equals(actual)) {
+            System.err.printf("ERROR: Expected ''%s'';%ngot             ''%s''.\n",
+                              expected, actual);
+            return 1;
+        } else
+            return 0;
+    }
 }
 
 class TestClass1 {
@@ -76,13 +76,23 @@
 
     @ExpectedGenericString(
    "private TestClass1(java.lang.Object) throws java.lang.RuntimeException")
+    @ExpectedString(
+   "private TestClass1(java.lang.Object) throws java.lang.RuntimeException")
     private TestClass1(Object o) throws RuntimeException {}
 
     @ExpectedGenericString(
    "protected <S,T> TestClass1(S,T) throws java.lang.Exception")
+    @ExpectedString(
+   "protected TestClass1(java.lang.Object,java.lang.Object) throws java.lang.Exception")
     protected <S, T> TestClass1(S s, T t) throws Exception{}
 
     @ExpectedGenericString(
+   "<E> TestClass1() throws E")
+    @ExpectedString(
+   "TestClass1() throws java.lang.Exception")
+    <E extends Exception> TestClass1() throws E {}
+
+    @ExpectedGenericString(
    "TestClass1(java.lang.Object...)")
     @ExpectedString(
    "TestClass1(java.lang.Object[])")
--- a/jdk/test/java/lang/reflect/Method/GenericStringTest.java	Tue Jul 26 10:53:20 2016 -0700
+++ b/jdk/test/java/lang/reflect/Method/GenericStringTest.java	Tue Jul 26 12:56:26 2016 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 5033583 6316717 6470106 8004979 8161500
+ * @bug 5033583 6316717 6470106 8004979 8161500 8162539
  * @summary Check toGenericString() and toString() methods
  * @author Joseph D. Darcy
  */
@@ -44,28 +44,16 @@
                     String actual = method.toGenericString();
                     System.out.println(actual);
                     if (method.isBridge()) {
-                        if (! egs.bridgeValue().equals(actual)) {
-                            failures++;
-                            System.err.printf("ERROR: Expected ''%s''; got ''%s''.\n",
-                                              egs.value(), actual);
-                        }
+                        failures += checkForFailure(egs.bridgeValue(), actual);
                     } else {
-                        if (! egs.value().equals(actual)) {
-                            failures++;
-                            System.err.printf("ERROR: Expected ''%s''; got ''%s''.\n",
-                                              egs.value(), actual);
-                        }
+                        failures += checkForFailure(egs.value(), actual);
                     }
                 }
 
                 if (method.isAnnotationPresent(ExpectedString.class)) {
                     ExpectedString es = method.getAnnotation(ExpectedString.class);
                     String actual = method.toString();
-                    if (! es.value().equals(actual)) {
-                        failures++;
-                        System.err.printf("ERROR: Expected ''%s''; got ''%s''.\n",
-                                          es.value(), actual);
-                    }
+                    failures += checkForFailure(es.value(), actual);
                 }
 
             }
@@ -88,6 +76,15 @@
             throw new RuntimeException();
         }
     }
+
+    private static int checkForFailure(String expected, String actual) {
+        if (!expected.equals(actual)) {
+            System.err.printf("ERROR: Expected ''%s'';%ngot             ''%s''.\n",
+                              expected, actual);
+            return 1;
+        } else
+            return 0;
+    }
 }
 
 class TestClass1 {
@@ -115,6 +112,8 @@
 
     @ExpectedGenericString(
    "public void TestClass2.method2() throws F")
+    @ExpectedString(
+   "public void TestClass2.method2() throws java.lang.Exception")
     public void method2() throws F {return;}
 
     @ExpectedGenericString(