JcrUtils.updateLastModifiedAndParents() accept null
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 2 Jun 2013 20:40:26 +0000 (20:40 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 2 Jun 2013 20:40:26 +0000 (20:40 +0000)
https://www.argeo.org/bugzilla/show_bug.cgi?id=163

git-svn-id: https://svn.argeo.org/commons/branches/1.x@6322 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java

index f3db14895acbf5676f5ee18c749fc3d63694ce88..2176e757cacac3141eb2e7c90a39302e085e0a8b 100644 (file)
@@ -1207,14 +1207,26 @@ public class JcrUtils implements ArgeoJcrConstants {
                }
        }
 
-       /** Update lastModified recursively until this parent. */
+       /**
+        * Update lastModified recursively until this parent.
+        * 
+        * @param node
+        *            the node
+        * @param untilPath
+        *            the base path, null is equivalent to "/"
+        */
        public static void updateLastModifiedAndParents(Node node, String untilPath) {
                try {
-                       if (!node.getPath().startsWith(untilPath))
+                       if (untilPath != null && !node.getPath().startsWith(untilPath))
                                throw new ArgeoException(node + " is not under " + untilPath);
                        updateLastModified(node);
-                       if (!node.getPath().equals(untilPath))
-                               updateLastModifiedAndParents(node.getParent(), untilPath);
+                       if (untilPath == null) {
+                               if (!node.getPath().equals("/"))
+                                       updateLastModifiedAndParents(node.getParent(), untilPath);
+                       } else {
+                               if (!node.getPath().equals(untilPath))
+                                       updateLastModifiedAndParents(node.getParent(), untilPath);
+                       }
                } catch (RepositoryException e) {
                        throw new ArgeoException("Cannot update lastModified from " + node
                                        + " until " + untilPath, e);
@@ -1403,6 +1415,7 @@ public class JcrUtils implements ArgeoJcrConstants {
         *            files
         * @return how many files were copied
         */
+       @SuppressWarnings("resource")
        public static Long copyFiles(Node fromNode, Node toNode, Boolean recursive,
                        ArgeoMonitor monitor) {
                long count = 0l;