\r
private Date closeDate;\r
\r
- private boolean isClosed = false;\r
+ private Boolean isClosed = false;\r
+\r
+ private Boolean warnIfAlreadyClosed = true;\r
\r
private String uuid;\r
\r
}\r
\r
public void addResultPart(TestResultPart part) {\r
- if (currentPath == null) {\r
+ if (isClosed)\r
+ throw new SlcException("Cannot result parts to a closed result");\r
+\r
+ if (currentPath == null)\r
throw new SlcException("No current path set.");\r
- }\r
+\r
PartSubList subList = resultParts.get(currentPath);\r
if (subList == null) {\r
subList = new PartSubList();\r
}\r
\r
public void close() {\r
+ if (resultParts.size() == 0) {\r
+ if (log.isTraceEnabled())\r
+ log.trace("Test Result #" + getUuid()\r
+ + " contains no results, no need to close it.");\r
+ return;\r
+ }\r
+\r
if (isClosed) {\r
- throw new SlcException("Test Result #" + getUuid()\r
- + " already closed.");\r
+ if (warnIfAlreadyClosed)\r
+ log.warn("Test Result #" + getUuid()\r
+ + " already closed. Doing nothing.");\r
+ return;\r
}\r
+\r
closeDate = new Date();\r
\r
synchronized (listeners) {\r
public void setAttributes(Map<String, String> attributes) {\r
this.attributes = attributes;\r
}\r
+\r
+ public void setWarnIfAlreadyClosed(Boolean warnIfAlreadyClosed) {\r
+ this.warnIfAlreadyClosed = warnIfAlreadyClosed;\r
+ }\r
+\r
}\r