[Mulgara-svn] r1661 - trunk/src/jar/util/java/org/mulgara/util

pag at mulgara.org pag at mulgara.org
Mon Apr 6 17:51:01 UTC 2009


Author: pag
Date: 2009-04-06 10:51:00 -0700 (Mon, 06 Apr 2009)
New Revision: 1661

Modified:
   trunk/src/jar/util/java/org/mulgara/util/StackTrace.java
Log:
Added cause chaining when printing the stack trace of a Throwable

Modified: trunk/src/jar/util/java/org/mulgara/util/StackTrace.java
===================================================================
--- trunk/src/jar/util/java/org/mulgara/util/StackTrace.java	2009-04-06 17:49:55 UTC (rev 1660)
+++ trunk/src/jar/util/java/org/mulgara/util/StackTrace.java	2009-04-06 17:51:00 UTC (rev 1661)
@@ -91,9 +91,21 @@
   private String getStringTrace() {
     StringBuilder b = new StringBuilder("STACK TRACE:\n");
     StackTraceElement[] stack = throwable.getStackTrace();
-    for (int level = offset; level < stack.length; level ++) {
+    for (int level = offset; level < stack.length; level++) {
       b.append("  ").append(stack[level].toString()).append("\n");
     }
+    Throwable reason = throwable.getCause();
+    while (reason != null) {
+      b.append(" Caused by:");
+      b.append(reason.getClass().toString());
+      b.append(": ");
+      b.append(reason.getMessage());
+      stack = reason.getStackTrace();
+      for (int level = 0; level < stack.length; level++) {
+        b.append("  ").append(stack[level].toString()).append("\n");
+      }
+      reason = reason.getCause();
+    }
     return b.toString();
   }
 




More information about the Mulgara-svn mailing list