-
Bug
-
Resolution: Done
-
Major
-
None
The suppressed exception format is not correct when multiple exceptions are suppressed. Too many causes are printed likely because the circular dependencies are not working correctly.
Example Reproducer
final RuntimeException r1 = new RuntimeException("Exception 1"); final RuntimeException r2 = new RuntimeException("Exception 2", r1); final RuntimeException r3 = new RuntimeException("Exception 3", r2); final RuntimeException cause = new RuntimeException("This is the cause", r1); cause.addSuppressed(r2); cause.addSuppressed(r3); Logger.getLogger(Main.class).error("Log message", cause);
Output from JBoss Log Manager
13:03:53,684 ERROR [com.jamezp.test.Main] Log message: java.lang.RuntimeException: This is the cause at com.jamezp.test.Main.main(Main.java:165) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Suppressed: java.lang.RuntimeException: Exception 2 at com.jamezp.test.Main.main(Main.java:162) ... 5 more Caused by: java.lang.RuntimeException: Exception 1 at com.jamezp.test.Main.main(Main.java:161) ... 5 more Suppressed: java.lang.RuntimeException: Exception 3 at com.jamezp.test.Main.main(Main.java:163) ... 5 more Caused by: java.lang.RuntimeException: Exception 2 at com.jamezp.test.Main.main(Main.java:162) ... 5 more Caused by: java.lang.RuntimeException: Exception 1 at com.jamezp.test.Main.main(Main.java:161) ... 5 more Caused by: java.lang.RuntimeException: Exception 1 at com.jamezp.test.Main.main(Main.java:161) ... 5 more
Output from Throwable.printStackTrace()
java.lang.RuntimeException: This is the cause at com.jamezp.test.Main.main(Main.java:165) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Suppressed: java.lang.RuntimeException: Exception 2 at com.jamezp.test.Main.main(Main.java:162) ... 5 more Caused by: java.lang.RuntimeException: Exception 1 at com.jamezp.test.Main.main(Main.java:161) ... 5 more Suppressed: java.lang.RuntimeException: Exception 3 at com.jamezp.test.Main.main(Main.java:163) ... 5 more [CIRCULAR REFERENCE:java.lang.RuntimeException: Exception 2] [CIRCULAR REFERENCE:java.lang.RuntimeException: Exception 1]
Output from JUL
Jan 26, 2017 1:06:29 PM com.jamezp.test.Main main ERROR: Log message java.lang.RuntimeException: This is the cause at com.jamezp.test.Main.main(Main.java:165) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Suppressed: java.lang.RuntimeException: Exception 2 at com.jamezp.test.Main.main(Main.java:162) ... 5 more Caused by: java.lang.RuntimeException: Exception 1 at com.jamezp.test.Main.main(Main.java:161) ... 5 more Suppressed: java.lang.RuntimeException: Exception 3 at com.jamezp.test.Main.main(Main.java:163) ... 5 more [CIRCULAR REFERENCE:java.lang.RuntimeException: Exception 2] [CIRCULAR REFERENCE:java.lang.RuntimeException: Exception 1]
- clones
-
LOGMGR-146 Suppressed exception format is not correct
- Resolved
-
JBEAP-12465 (7.1.0) Suppressed exception format is not correct
- Closed
- is incorporated by
-
JBEAP-10689 (7.0.z) Upgrade jboss-logmanager from 2.0.3.Final to 2.0.7.Final
- Closed
- is related to
-
JBEAP-13181 StackTraceFormatterTests failing on IBM JDK 1.8
- Closed