package org.argeo.slc.core.test.tree;\r
\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
import org.argeo.slc.dao.test.TestResultDao;\r
\r
public class TreeTestResultPersister extends AsynchronousTreeTestResultListener {\r
+ private static Log log = LogFactory.getLog(TreeTestResultPersister.class);\r
+\r
private TestResultDao testResultDao;\r
\r
@Override\r
protected void resultPartAdded(PartStruct partStruct) {\r
- TreeTestResult persistedResult = (TreeTestResult) testResultDao\r
- .getTestResult(partStruct.resultId);\r
- if (persistedResult == null) {\r
- persistedResult = new TreeTestResult();\r
- persistedResult.setNumericResultId(partStruct.resultId);\r
- PartSubList subList = new PartSubList();\r
- subList.getParts().add(partStruct.part);\r
- persistedResult.getResultParts().put(partStruct.path, subList);\r
-\r
- testResultDao.create(persistedResult);\r
- } else {\r
- PartSubList subList = persistedResult.getResultParts().get(\r
- partStruct.path);\r
- if (subList == null) {\r
- subList = new PartSubList();\r
+ try {\r
+ TreeTestResult persistedResult = (TreeTestResult) testResultDao\r
+ .getTestResult(partStruct.resultId);\r
+ if (persistedResult == null) {\r
+ persistedResult = new TreeTestResult();\r
+ persistedResult.setNumericResultId(partStruct.resultId);\r
+ PartSubList subList = new PartSubList();\r
+ subList.getParts().add(partStruct.part);\r
persistedResult.getResultParts().put(partStruct.path, subList);\r
- }\r
- subList.getParts().add(partStruct.part);\r
\r
- testResultDao.update(persistedResult);\r
+ testResultDao.create(persistedResult);\r
+ } else {\r
+ PartSubList subList = persistedResult.getResultParts().get(\r
+ partStruct.path);\r
+ if (subList == null) {\r
+ subList = new PartSubList();\r
+ persistedResult.getResultParts().put(partStruct.path,\r
+ subList);\r
+ }\r
+ persistedResult.getResultParts().get(partStruct.path)\r
+ .getParts().add(partStruct.part);\r
+\r
+ if (log.isTraceEnabled()) {\r
+ log.trace("ResultId:" + persistedResult.getTestResultId());\r
+ log.trace("ResultParts size:"\r
+ + persistedResult.getResultParts().size());\r
+ log.trace("Sublist size:" + subList.getParts().size());\r
+ log.trace("Part: " + partStruct.part);\r
+ }\r
+ testResultDao.update(persistedResult);\r
+ }\r
+ } catch (Exception e) {\r
+ log.error("Could not persist part for result #"\r
+ + partStruct.resultId, e);\r
}\r
}\r
\r