- \r
-/* \r
- StringWriter writer = null;\r
- StringReader reader = null;\r
- try {\r
- writer = new StringWriter();\r
- exception.printStackTrace(new PrintWriter(writer));\r
- reader = new StringReader(writer.toString());\r
- exceptionStackLines = new Vector<String>(IOUtils.readLines(reader));\r
- } catch (IOException e) {\r
- // silent\r
- } finally {\r
- IOUtils.closeQuietly(writer);\r
- IOUtils.closeQuietly(reader);\r
- }*/\r
+ }\r
+\r
+ protected void addRootCause(StringBuffer buf, Throwable cause) {\r
+ if (cause == null)\r
+ return;\r
+\r
+ buf.append("Caused by: " + cause.getMessage());\r
+ for (StackTraceElement elem : cause.getStackTrace()) {\r
+ buf.append('\t').append(elem.toString()).append('\n');\r
+ }\r
+\r
+ if (cause.getCause() != null) {\r
+ addRootCause(buf, cause.getCause());\r
+ }\r