]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java
Improve error logging and reporting
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / core / test / tree / TreeTestResultPersister.java
index 29c73d2fff2e73aadd45abcbef3452d026ae62cf..c16e70a76fb8cce420c38a59695f1dfc3ebf5b70 100644 (file)
@@ -31,17 +31,9 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener
 \r
                        TreeSPath path = treeSPathDao.getOrCreate(partStruct.path);\r
 \r
+                       StructureRegistry localRegistry = partStruct.result.getRegistry();\r
                        TreeSRegistry registry = getOrCreateTreeSRegistry(path);\r
-                       if (registry.getElement(path) == null) {\r
-                               StructureRegistry localRegistry = partStruct.result\r
-                                               .getRegistry();\r
-                               if (localRegistry != null) {\r
-                                       registry.register(path, localRegistry.getElement(path));\r
-                               } else {\r
-                                       registry.register(path, new SimpleSElement(path.getName()));\r
-                               }\r
-                               treeSRegistryDao.update(registry);\r
-                       }\r
+                       syncPath(registry, localRegistry, path);\r
 \r
                        if (persistedResult == null) {\r
                                persistedResult = new TreeTestResult();\r
@@ -118,4 +110,20 @@ public class TreeTestResultPersister extends AsynchronousTreeTestResultListener
                this.treeSRegistryDao = treeSRegistryDao;\r
        }\r
 \r
+       private void syncPath(TreeSRegistry registry,\r
+                       StructureRegistry localRegistry, TreeSPath path) {\r
+               if (registry.getElement(path) == null) {\r
+                       if (localRegistry != null) {\r
+                               registry.register(path, localRegistry.getElement(path));\r
+                       } else {\r
+                               registry.register(path, new SimpleSElement(path.getName()));\r
+                       }\r
+                       treeSRegistryDao.update(registry);\r
+               }\r
+\r
+               if (path.getParent() != null) {\r
+                       TreeSPath parent = treeSPathDao.getOrCreate(path.getParent());\r
+                       syncPath(registry, localRegistry, parent);\r
+               }\r
+       }\r
 }\r