X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2FTreeTestResultPersister.java;h=17cf66499c463af4174eeb03ea748fec88f66b07;hb=9eb5d8493deed66f11248550fe5ec2202151846f;hp=16ec6facda707373ac4eb320640309b16642d658;hpb=62ef12a06742ee09256c18e8db90fe83a108c116;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java index 16ec6facd..17cf66499 100644 --- a/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java @@ -1,32 +1,51 @@ package org.argeo.slc.core.test.tree; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import org.argeo.slc.dao.test.TestResultDao; public class TreeTestResultPersister extends AsynchronousTreeTestResultListener { + private static Log log = LogFactory.getLog(TreeTestResultPersister.class); + private TestResultDao testResultDao; @Override protected void resultPartAdded(PartStruct partStruct) { - TreeTestResult persistedResult = (TreeTestResult) testResultDao - .getTestResult(partStruct.resultId); - if (persistedResult == null) { - persistedResult = new TreeTestResult(); - persistedResult.setNumericResultId(partStruct.resultId); - PartSubList subList = new PartSubList(); - subList.getParts().add(partStruct.part); - persistedResult.getResultParts().put(partStruct.path, subList); - - testResultDao.create(persistedResult); - } else { - PartSubList subList = persistedResult.getResultParts().get( - partStruct.path); - if (subList == null) { - subList = new PartSubList(); + try { + TreeTestResult persistedResult = (TreeTestResult) testResultDao + .getTestResult(partStruct.resultId); + if (persistedResult == null) { + persistedResult = new TreeTestResult(); + persistedResult.setNumericResultId(partStruct.resultId); + PartSubList subList = new PartSubList(); + subList.getParts().add(partStruct.part); persistedResult.getResultParts().put(partStruct.path, subList); - } - subList.getParts().add(partStruct.part); - testResultDao.update(persistedResult); + testResultDao.create(persistedResult); + } else { + PartSubList subList = persistedResult.getResultParts().get( + partStruct.path); + if (subList == null) { + subList = new PartSubList(); + persistedResult.getResultParts().put(partStruct.path, + subList); + } + persistedResult.getResultParts().get(partStruct.path) + .getParts().add(partStruct.part); + + if (log.isTraceEnabled()) { + log.trace("ResultId:" + persistedResult.getTestResultId()); + log.trace("ResultParts size:" + + persistedResult.getResultParts().size()); + log.trace("Sublist size:" + subList.getParts().size()); + log.trace("Part: " + partStruct.part); + } + testResultDao.update(persistedResult); + } + } catch (Exception e) { + log.error("Could not persist part for result #" + + partStruct.resultId, e); } }