### Eclipse Workspace Patch 1.0 #P oak-core Index: src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java =================================================================== --- src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java (revision 1542980) +++ src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java (working copy) @@ -51,7 +51,11 @@ } public ImmutableRoot(@Nonnull Root root, @Nonnull TreeTypeProvider typeProvider) { - this(ImmutableTree.createFromRoot(root, typeProvider)); + this(root, typeProvider, false); + } + + public ImmutableRoot(@Nonnull Root root, @Nonnull TreeTypeProvider typeProvider, boolean secured) { + this(ImmutableTree.createFromRoot(root, typeProvider, secured)); } public ImmutableRoot(@Nonnull ImmutableTree rootTree) { Index: src/test/java/org/apache/jackrabbit/oak/core/ImmutableTreeTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/core/ImmutableTreeTest.java (revision 1535310) +++ src/test/java/org/apache/jackrabbit/oak/core/ImmutableTreeTest.java (working copy) @@ -83,7 +83,7 @@ @Test public void testGetNodeState() { - ImmutableTree tree = ImmutableTree.createFromRoot(root, TreeTypeProvider.EMPTY); + ImmutableTree tree = ImmutableTree.createFromRoot(root, TreeTypeProvider.EMPTY, false); assertNotNull(tree.getNodeState()); for (Tree child : tree.getChildren()) { @@ -94,7 +94,7 @@ @Test public void testRoot() { - ImmutableTree tree = ImmutableTree.createFromRoot(root, TreeTypeProvider.EMPTY); + ImmutableTree tree = ImmutableTree.createFromRoot(root, TreeTypeProvider.EMPTY, false); assertTrue(tree.isRoot()); try { tree.getParent(); @@ -107,7 +107,7 @@ @Test public void testGetParent() { - ImmutableTree tree = ImmutableTree.createFromRoot(root, TreeTypeProvider.EMPTY); + ImmutableTree tree = ImmutableTree.createFromRoot(root, TreeTypeProvider.EMPTY, false); try { tree.getParent(); fail(); Index: src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java =================================================================== --- src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java (revision 1535310) +++ src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java (working copy) @@ -122,11 +122,9 @@ this.typeProvider = typeProvider; } - public static ImmutableTree createFromRoot(@Nonnull Root root, @Nonnull TreeTypeProvider typeProvider) { + public static ImmutableTree createFromRoot(@Nonnull Root root, @Nonnull TreeTypeProvider typeProvider, boolean secured) { if (root instanceof AbstractRoot) { - return new ImmutableTree(((AbstractRoot) root).getBaseState(), typeProvider); - } else if (root instanceof ImmutableRoot) { - return ((ImmutableRoot) root).getTree("/"); + return new ImmutableTree(secured?((AbstractRoot) root).getSecureBase():((AbstractRoot) root).getBaseState(), typeProvider); } else { throw new IllegalArgumentException("Unsupported Root implementation: " + root.getClass()); }