X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2FTreeTestResult.java;h=3e365afe0822c6f28b51f3f835d89189a6fd7328;hb=f0127de9d5b8360cf5ff7087845a1e0fe35aec73;hp=5d680ff8e2399ccd25e90ef1c1042d8bfb044ebb;hpb=1a4b784250a43f6c7421ab5d8567c3bfbf51e990;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java index 5d680ff8e..3e365afe0 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java @@ -10,7 +10,6 @@ import java.util.Vector; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.core.SlcException; -import org.argeo.slc.core.structure.SimpleSElement; import org.argeo.slc.core.structure.StructureAware; import org.argeo.slc.core.structure.StructureElement; import org.argeo.slc.core.structure.StructureRegistry; @@ -36,7 +35,9 @@ public class TreeTestResult implements TestResult, StructureAware, private Date closeDate; - private boolean isClosed = false; + private Boolean isClosed = false; + + private Boolean warnIfAlreadyClosed = true; private String uuid; @@ -51,9 +52,12 @@ public class TreeTestResult implements TestResult, StructureAware, } public void addResultPart(TestResultPart part) { - if (currentPath == null) { + if (isClosed) + throw new SlcException("Cannot result parts to a closed result"); + + if (currentPath == null) throw new SlcException("No current path set."); - } + PartSubList subList = resultParts.get(currentPath); if (subList == null) { subList = new PartSubList(); @@ -109,10 +113,20 @@ public class TreeTestResult implements TestResult, StructureAware, } public void close() { + if (resultParts.size() == 0) { + if (log.isTraceEnabled()) + log.trace("Test Result #" + getUuid() + + " contains no results, no need to close it."); + return; + } + if (isClosed) { - throw new SlcException("Test Result #" + getUuid() - + " alredy closed."); + if (warnIfAlreadyClosed) + log.warn("Test Result #" + getUuid() + + " already closed. Doing nothing."); + return; } + closeDate = new Date(); synchronized (listeners) { @@ -197,4 +211,9 @@ public class TreeTestResult implements TestResult, StructureAware, public void setAttributes(Map attributes) { this.attributes = attributes; } + + public void setWarnIfAlreadyClosed(Boolean warnIfAlreadyClosed) { + this.warnIfAlreadyClosed = warnIfAlreadyClosed; + } + }