Fix bug when test are in error
authorBruno Sinou <bsinou@argeo.org>
Thu, 17 Jan 2013 21:50:21 +0000 (21:50 +0000)
committerBruno Sinou <bsinou@argeo.org>
Thu, 17 Jan 2013 21:50:21 +0000 (21:50 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@6042 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/JcrTestResult.java

index 45de6597aacdfb30313a5cd88c7eb1600699e765..0b419ccd7cad8e587d3e98c6f30bc76f1ecf9bac 100644 (file)
@@ -127,22 +127,22 @@ public class JcrTestResult implements TestResult, SlcNames, AttachmentsEnabled {
 
        public void addResultPart(TestResultPart testResultPart) {
                Node node = getNode();
-               
+
                try {
-               
-                       // error
-            if (testResultPart.getExceptionMessage() != null)
-                    JcrUtils.discardQuietly(node.getSession());
+                       // error : revert all unsaved changes on the resultNode to be sure
+                       // it is in a consistant state
+                       if (testResultPart.getExceptionMessage() != null)
+                               JcrUtils.discardQuietly(node.getSession());
                        node.getSession().save();
-                       
+
                        // add the new result part, retrieving status information
                        Node resultPartNode = node.addNode(SlcNames.SLC_RESULT_PART,
                                        SlcTypes.SLC_CHECK);
                        resultPartNode.setProperty(SLC_SUCCESS,
                                        testResultPart.getStatus() == TestStatus.PASSED);
-                       // if (testResultPart.getMessage() != null)
-                       // resultPartNode.setProperty(SLC_MESSAGE,
-                       // testResultPart.getMessage());
+                       if (testResultPart.getMessage() != null)
+                               resultPartNode.setProperty(SLC_MESSAGE,
+                                               testResultPart.getMessage());
                        if (testResultPart.getStatus() == TestStatus.ERROR) {
                                resultPartNode.setProperty(SLC_ERROR_MESSAGE,
                                                (testResultPart.getExceptionMessage() == null) ? ""
@@ -204,7 +204,7 @@ public class JcrTestResult implements TestResult, SlcNames, AttachmentsEnabled {
                        node.getSession().save();
                } catch (Exception e) {
                        JcrUtils.discardUnderlyingSessionQuietly(node);
-                       throw new SlcException("Cannot get UUID from " + node, e);
+                       throw new SlcException("Cannot add ResultPart to node " + node, e);
                }
        }