Code review request for 8012044: Give more information about self-suppression from Throwable.addSuppressed

Joe Darcy joe.darcy at oracle.com
Fri Apr 12 01:19:30 UTC 2013


Hello,

Please review the patch below to address

     8012044: Give more information about self-suppression from 
Throwable.addSuppressed
     http://cr.openjdk.java.net/~darcy/8012044.0/

Thanks,

-Joe

diff -r 006a7a576fe9 src/share/classes/java/lang/Throwable.java
--- a/src/share/classes/java/lang/Throwable.java    Thu Apr 11 12:22:23 
2013 +0900
+++ b/src/share/classes/java/lang/Throwable.java    Thu Apr 11 18:16:38 
2013 -0700
@@ -1039,7 +1039,7 @@
       */
      public final synchronized void addSuppressed(Throwable exception) {
          if (exception == this)
-            throw new IllegalArgumentException(SELF_SUPPRESSION_MESSAGE);
+            throw new 
IllegalArgumentException(SELF_SUPPRESSION_MESSAGE, exception);

          if (exception == null)
              throw new NullPointerException(NULL_CAUSE_MESSAGE);
diff -r 006a7a576fe9 test/java/lang/Throwable/SuppressedExceptions.java
--- a/test/java/lang/Throwable/SuppressedExceptions.java    Thu Apr 11 
12:22:23 2013 +0900
+++ b/test/java/lang/Throwable/SuppressedExceptions.java    Thu Apr 11 
18:16:38 2013 -0700
@@ -26,7 +26,7 @@

  /*
   * @test
- * @bug     6911258 6962571 6963622 6991528 7005628
+ * @bug     6911258 6962571 6963622 6991528 7005628 8012044
   * @summary Basic tests of suppressed exceptions
   * @author  Joseph D. Darcy
   */
@@ -48,7 +48,9 @@
              throwable.addSuppressed(throwable);
              throw new RuntimeException("IllegalArgumentException for 
self-suppresion not thrown.");
          } catch (IllegalArgumentException iae) {
-            ; // Expected
+            // Expected to be here
+            if (iae.getCause() != throwable)
+                throw new RuntimeException("Bad cause after 
self-suppresion.");
          }
      }


-Joe



More information about the core-libs-dev mailing list