X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2FSimpleResultPart.java;h=e114e1f6d15c34b7eb68aa4dd8e13cfb9d0813cf;hb=7ffec52c590ce511b476f55be4ad123418268aa0;hp=543cc98bb89849cefbbe5b626205fdd169daefdf;hpb=62e442adb36b006627b17061864dfa4edde0a99a;p=gpl%2Fargeo-slc.git
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java
index 543cc98bb..e114e1f6d 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java
@@ -1,14 +1,5 @@
package org.argeo.slc.core.test;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.List;
-import java.util.Vector;
-
-import org.apache.commons.io.IOUtils;
-
/**
*
* Basic implementation of a result part, implementing the standard three status
@@ -29,7 +20,6 @@ public class SimpleResultPart implements TestResultPart, TestStatus,
private Integer status = ERROR;
private String message;
private String exceptionMessage;
- private List exceptionStackLines = new Vector();
public SimpleResultPart() {
}
@@ -68,20 +58,30 @@ public class SimpleResultPart implements TestResultPart, TestStatus,
if (exception == null)
return;
- this.exceptionMessage = exception.getMessage();
-
- StringWriter writer = null;
- StringReader reader = null;
- try {
- writer = new StringWriter();
- exception.printStackTrace(new PrintWriter(writer));
- reader = new StringReader(writer.toString());
- exceptionStackLines = new Vector(IOUtils.readLines(reader));
- } catch (IOException e) {
- // silent
- } finally {
- IOUtils.closeQuietly(writer);
- IOUtils.closeQuietly(reader);
+ StringBuffer buf = new StringBuffer("");
+ buf.append(exception.toString());
+ buf.append('\n');
+ for (StackTraceElement elem : exception.getStackTrace()) {
+ buf.append('\t').append(elem.toString()).append('\n');
+ }
+
+ if (exception.getCause() != null)
+ addRootCause(buf, exception.getCause());
+
+ this.exceptionMessage = buf.toString();
+ }
+
+ protected void addRootCause(StringBuffer buf, Throwable cause) {
+ if (cause == null)
+ return;
+
+ buf.append("Caused by: " + cause.getMessage());
+ for (StackTraceElement elem : cause.getStackTrace()) {
+ buf.append('\t').append(elem.toString()).append('\n');
+ }
+
+ if (cause.getCause() != null) {
+ addRootCause(buf, cause.getCause());
}
}
@@ -121,14 +121,6 @@ public class SimpleResultPart implements TestResultPart, TestStatus,
testRunUuid = testRun.getUuid();
}
- public List getExceptionStackLines() {
- return exceptionStackLines;
- }
-
- public void setExceptionStackLines(List exceptionStackLines) {
- this.exceptionStackLines = exceptionStackLines;
- }
-
public void setExceptionMessage(String exceptionMessage) {
this.exceptionMessage = exceptionMessage;
}