You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2013/07/17 17:40:12 UTC

svn commit: r1504179 - /jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java

Author: angela
Date: Wed Jul 17 15:40:12 2013
New Revision: 1504179

URL: http://svn.apache.org/r1504179
Log:
OAK-908 : Performance measurement 

- fix occasional test failure caused by trying to add ac content to an access controlled node

Modified:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java?rev=1504179&r1=1504178&r2=1504179&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/ConcurrentReadAccessControlledTreeTest.java Wed Jul 17 15:40:12 2013
@@ -28,6 +28,8 @@ import javax.jcr.security.Privilege;
 import javax.jcr.util.TraversingItemVisitor;
 
 import org.apache.jackrabbit.core.security.principal.EveryonePrincipal;
+import org.apache.jackrabbit.oak.spi.security.authorization.AccessControlConstants;
+import org.apache.jackrabbit.util.Text;
 
 /**
  * Concurrently reads random items from the deep tree where every 10th node is
@@ -60,6 +62,17 @@ public class ConcurrentReadAccessControl
             private void addPolicy(Node node) throws RepositoryException {
                 AccessControlManager acMgr = node.getSession().getAccessControlManager();
                 String path = node.getPath();
+                int level = 0;
+                if (node.isNodeType(AccessControlConstants.NT_REP_POLICY)) {
+                    level = 1;
+                } else if (node.isNodeType(AccessControlConstants.NT_REP_ACE)) {
+                    level = 2;
+                } else if (node.isNodeType(AccessControlConstants.NT_REP_RESTRICTIONS)) {
+                    level = 3;
+                }
+                if (level > 0) {
+                    path = Text.getRelativeParent(path, level);
+                }
                 AccessControlPolicyIterator acIterator = acMgr.getApplicablePolicies(path);
                 if (acIterator.hasNext()) {
                     AccessControlPolicy policy = acIterator.nextAccessControlPolicy();