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