Ard Schrijvers pushed to branch feature/wpm at cms-community / 
hippo-site-toolkit


Commits:
3acd96c4 by Ard Schrijvers at 2017-05-22T11:39:58+02:00
HSTTWO-4016 Make sure the hasher is consistent when hashing a workspace 
descendant

The node name was skipped for non-root-nodes

- - - - -


2 changed files:

- 
components/core/src/main/java/org/hippoecm/hst/configuration/branch/WorkspaceHasher.java
- 
components/core/src/test/java/org/hippoecm/hst/configuration/branch/WorkspaceHasherIT.java


Changes:

=====================================
components/core/src/main/java/org/hippoecm/hst/configuration/branch/WorkspaceHasher.java
=====================================
--- 
a/components/core/src/main/java/org/hippoecm/hst/configuration/branch/WorkspaceHasher.java
+++ 
b/components/core/src/main/java/org/hippoecm/hst/configuration/branch/WorkspaceHasher.java
@@ -29,6 +29,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.xml.bind.annotation.adapters.HexBinaryAdapter;
 
+import org.hippoecm.hst.configuration.HstNodeTypes;
 import org.hippoecm.hst.diagnosis.HDC;
 import org.hippoecm.hst.diagnosis.Task;
 import org.hippoecm.hst.statistics.Counter;
@@ -125,12 +126,12 @@ public class WorkspaceHasher implements NodeHasher {
     private String startHashing(final Node node, final boolean setHash,
                               final boolean setUpstreamHash, final Counter 
counter) throws NoSuchAlgorithmException, RepositoryException {
         long start = System.currentTimeMillis();
-        byte[] bytes = doHash(node, true, setHash, setUpstreamHash, counter);
+        byte[] bytes = doHash(node, setHash, setUpstreamHash, counter);
         log.info("Hashing '{}' containing '{}' nodes took '{}' ms", 
node.getPath(), counter.getValue(), (System.currentTimeMillis() - start));
         return hexBinaryAdapter.marshal(bytes);
     }
 
-    private byte[] doHash(final Node node, final boolean isRoot, final boolean 
setHash,
+    private byte[] doHash(final Node node, final boolean setHash,
                           final boolean setUpstreamHash, final Counter counter)
             throws RepositoryException, NoSuchAlgorithmException, 
BranchException {
 
@@ -140,7 +141,7 @@ public class WorkspaceHasher implements NodeHasher {
             node.addMixin(MIXINTYPE_HST_HASHABLE);
         }
 
-        if (!isRoot) {
+        if (!node.isNodeType(NODETYPE_HST_WORKSPACE)) {
             md5.update(node.getName().getBytes());
         }
 
@@ -162,7 +163,7 @@ public class WorkspaceHasher implements NodeHasher {
                 confirmDeletedState(child);
                 continue;
             }
-            byte[] hash = doHash(child, false, setHash, setUpstreamHash, 
counter);
+            byte[] hash = doHash(child, setHash, setUpstreamHash, counter);
             md5.update(hash);
         }
         byte[] digest = md5.digest();


=====================================
components/core/src/test/java/org/hippoecm/hst/configuration/branch/WorkspaceHasherIT.java
=====================================
--- 
a/components/core/src/test/java/org/hippoecm/hst/configuration/branch/WorkspaceHasherIT.java
+++ 
b/components/core/src/test/java/org/hippoecm/hst/configuration/branch/WorkspaceHasherIT.java
@@ -280,7 +280,7 @@ public class WorkspaceHasherIT extends 
AbstractTestConfigurations {
     }
 
     @Test
-    public void node_names_influences_hashing_except_the_root_node() throws 
Exception {
+    public void 
node_names_influences_hashing_except_node_of_type_hst_workspace() throws 
Exception {
         // whether the 'root' node is hst:workspace or hst:upstream, that does 
not influence the hashing
         Session session = createSession();
         try {



View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-site-toolkit/commit/3acd96c4641d2768971afe5c0dfbbd0108757f1b
_______________________________________________
Hippocms-svn mailing list
Hippocms-svn@lists.onehippo.org
https://lists.onehippo.org/mailman/listinfo/hippocms-svn

Reply via email to