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 2019/08/20 07:37:49 UTC

svn commit: r1865514 - in /jackrabbit/oak/trunk/oak-authorization-cug/src: main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/ test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/

Author: angela
Date: Tue Aug 20 07:37:49 2019
New Revision: 1865514

URL: http://svn.apache.org/viewvc?rev=1865514&view=rev
Log:
OAK-8558 : Simplify path handling in TopLevelPaths

Modified:
    jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPaths.java
    jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java

Modified: jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPaths.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPaths.java?rev=1865514&r1=1865513&r2=1865514&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPaths.java (original)
+++ jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPaths.java Tue Aug 20 07:37:49 2019
@@ -38,7 +38,7 @@ class TopLevelPaths implements CugConsta
 
     private Boolean hasAny;
     private Long cnt;
-    private String[] paths;
+    private String[] paths = new String[0];
 
     TopLevelPaths(Root root) {
         this.root = root;
@@ -69,7 +69,7 @@ class TopLevelPaths implements CugConsta
                     PropertyState hidden = root.getTree(PathUtils.ROOT_PATH).getProperty(HIDDEN_NESTED_CUGS);
                     paths = (hidden == null) ? new String[0] : Iterables.toArray(hidden.getValue(Type.STRINGS), String.class);
                 } else {
-                    paths = null;
+                    paths = new String[0];
                 }
             } else {
                 cnt = NONE;
@@ -80,7 +80,7 @@ class TopLevelPaths implements CugConsta
             return false;
         } if (cnt > MAX_CNT) {
             return true;
-        } else if (paths != null) {
+        } else {
             for (String p : paths) {
                 if (Text.isDescendantOrEqual(path, p)) {
                     return true;

Modified: jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java?rev=1865514&r1=1865513&r2=1865514&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java (original)
+++ jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java Tue Aug 20 07:37:49 2019
@@ -23,6 +23,7 @@ import com.google.common.collect.Immutab
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
 import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
 import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;
 import org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission;
@@ -192,4 +193,13 @@ public class TopLevelPathTest extends Ab
             assertSame(p, TreePermission.NO_RECOURSE, tp);
         }
     }
+
+    @Test
+    public void testMissingHiddenNestedCugProperty() {
+        MemoryNodeBuilder nb = new MemoryNodeBuilder(getTreeProvider().asNodeState(root.getTree(PathUtils.ROOT_PATH)));
+        nb.setProperty(HIDDEN_TOP_CUG_CNT, 4);
+
+        TopLevelPaths tlp = new TopLevelPaths(getRootProvider().createReadOnlyRoot(nb.getNodeState()));
+        assertFalse(tlp.contains(SUPPORTED_PATH));
+    }
 }