* \r
* @see TestStatus\r
*/\r
-public class SimpleResultPart implements TestResultPart, TestStatus {\r
+public class SimpleResultPart implements TestResultPart, TestStatus,\r
+ TestRunAware {\r
\r
- /** For ORM */\r
+ /** @deprecated */\r
private Long tid;\r
\r
+ private String testRunUuid;\r
+\r
/** The status. Default to ERROR since it should always be explicitely set. */\r
private Integer status = ERROR;\r
private String message;\r
- private Exception exception;\r
+ private String exceptionMessage;\r
\r
public SimpleResultPart() {\r
}\r
public SimpleResultPart(Integer status, String message, Exception exception) {\r
this.status = status;\r
this.message = message;\r
- this.exception = exception;\r
+ setException(exception);\r
}\r
\r
public String getMessage() {\r
return status;\r
}\r
\r
- public Exception getException() {\r
- return exception;\r
+ public String getExceptionMessage() {\r
+ return exceptionMessage;\r
}\r
\r
public void setException(Exception exception) {\r
- this.exception = exception;\r
+ if (exception == null)\r
+ return;\r
+\r
+ StringBuffer buf = new StringBuffer("");\r
+ buf.append(exception.toString());\r
+ buf.append('\n');\r
+ for (StackTraceElement elem : exception.getStackTrace()) {\r
+ buf.append('\t').append(elem.toString()).append('\n');\r
+ }\r
+\r
+ if (exception.getCause() != null)\r
+ addRootCause(buf, exception.getCause());\r
+\r
+ this.exceptionMessage = buf.toString();\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
}\r
\r
@Override\r
buf.append(" ");\r
}\r
buf.append(message);\r
- if (exception != null) {\r
- buf.append("(").append(exception.getMessage()).append(")");\r
- }\r
return buf.toString();\r
}\r
\r
+ /** @deprecated */\r
Long getTid() {\r
return tid;\r
}\r
\r
+ /** @deprecated */\r
void setTid(Long tid) {\r
this.tid = tid;\r
}\r
\r
+ public String getTestRunUuid() {\r
+ return testRunUuid;\r
+ }\r
+\r
+ /** For ORM */\r
+ public void setTestRunUuid(String testRunUuid) {\r
+ this.testRunUuid = testRunUuid;\r
+ }\r
+\r
+ public void notifyTestRun(TestRun testRun) {\r
+ testRunUuid = testRun.getUuid();\r
+ }\r
+\r
+ public void setExceptionMessage(String exceptionMessage) {\r
+ this.exceptionMessage = exceptionMessage;\r
+ }\r
+\r
}\r