Hi Joe, I think this patch and its revised output looks OK and agree about not adding a test for it.
Brian > On Jun 28, 2019, at 4:42 PM, Joe Darcy <joe.da...@oracle.com> wrote: > […] > > and the revised code prints this more helpfully as > > java.lang.Exception: first > at DejaVuStackTrace.main(DejaVuStackTrace.java:3) > Suppressed: java.lang.Exception: second > at DejaVuStackTrace.main(DejaVuStackTrace.java:4) > Suppressed: java.lang.Exception: third > at DejaVuStackTrace.main(DejaVuStackTrace.java:6) > Suppressed: java.lang.Exception: fourth > at DejaVuStackTrace.main(DejaVuStackTrace.java:8) > Suppressed: [CIRCULAR REFERENCE: java.lang.Exception: first] > Suppressed: java.lang.Exception: fifth > at DejaVuStackTrace.main(DejaVuStackTrace.java:14) > Caused by: [CIRCULAR REFERENCE: java.lang.Exception: second] > > The format of the printed stack trace is not specified and I don't think it > is worthwhile to write a regression test for this change. > > Cheers, > > -Joe > > diff -r c9093341cfe2 src/java.base/share/classes/java/lang/Throwable.java > --- a/src/java.base/share/classes/java/lang/Throwable.java Fri Jun 28 > 13:02:18 2019 -0700 > +++ b/src/java.base/share/classes/java/lang/Throwable.java Fri Jun 28 > 16:34:15 2019 -0700 > @@ -693,7 +693,7 @@ > Set<Throwable> dejaVu) { > assert Thread.holdsLock(s.lock()); > if (dejaVu.contains(this)) { > - s.println("\t[CIRCULAR REFERENCE:" + this + "]"); > + s.println(prefix + caption + "[CIRCULAR REFERENCE: " + this + > "]"); > } else { > dejaVu.add(this); > // Compute number of frames in common between this and enclosing > trace >