Index: oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfiguration.java =================================================================== --- oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfiguration.java (Revision 1857296) +++ oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfiguration.java (Arbeitskopie) @@ -233,6 +233,7 @@ static boolean registerCugNodeTypes(@NotNull final Root root) { try { ReadOnlyNodeTypeManager ntMgr = new ReadOnlyNodeTypeManager() { + @NotNull @Override protected Tree getTypes() { return root.getTree(NodeTypeConstants.NODE_TYPES_PATH); Index: oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorTest.java =================================================================== --- oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorTest.java (Revision 1857296) +++ oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugValidatorTest.java (Arbeitskopie) @@ -153,7 +153,7 @@ return root; } - @Nullable + @NotNull @Override protected Tree getTypes() { return root.getTree(NODE_TYPES_PATH); Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java (Revision 1857296) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java (Arbeitskopie) @@ -485,7 +485,8 @@ private ReadOnlyNodeTypeManager getManager() { final Tree types = definition.getParent(); return new ReadOnlyNodeTypeManager() { - @Override @Nullable + @NotNull + @Override protected Tree getTypes() { return types; } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java (Revision 1857296) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java (Arbeitskopie) @@ -82,10 +82,13 @@ } /** - * @return {@link org.apache.jackrabbit.oak.api.Tree} instance where the node types - * are stored or {@code null} if none. + * Returns the {@link Tree} instance where the node types are stored. This + * method never returns {@code null} and may return a {@code Tree} that + * does not exist (see {@link Tree#exists()} when there are no types stored. + * + * @return {@link Tree} instance where the node types are stored. */ - @Nullable + @NotNull protected abstract Tree getTypes(); /** @@ -125,6 +128,7 @@ public static ReadOnlyNodeTypeManager getInstance(final Root root, final NamePathMapper namePathMapper) { return new ReadOnlyNodeTypeManager() { + @NotNull @Override protected Tree getTypes() { return root.getTree(NODE_TYPES_PATH); @@ -142,8 +146,7 @@ @Override public boolean hasNodeType(String name) throws RepositoryException { - Tree types = getTypes(); - return types != null && types.hasChild(getOakName(name)); + return getTypes().hasChild(getOakName(name)); } @Override @@ -155,11 +158,9 @@ public NodeTypeIterator getAllNodeTypes() throws RepositoryException { List list = Lists.newArrayList(); Tree types = getTypes(); - if (types != null) { - NamePathMapper mapper = getNamePathMapper(); - for (Tree type : types.getChildren()) { - list.add(new NodeTypeImpl(type, mapper)); - } + NamePathMapper mapper = getNamePathMapper(); + for (Tree type : types.getChildren()) { + list.add(new NodeTypeImpl(type, mapper)); } return new NodeTypeIteratorAdapter(list); } @@ -411,11 +412,9 @@ @NotNull NodeTypeImpl internalGetNodeType(@NotNull String oakName) throws NoSuchNodeTypeException { Tree types = getTypes(); - if (types != null) { - Tree type = types.getChild(oakName); - if (type.exists()) { - return new NodeTypeImpl(type, getNamePathMapper()); - } + Tree type = types.getChild(oakName); + if (type.exists()) { + return new NodeTypeImpl(type, getNamePathMapper()); } throw new NoSuchNodeTypeException(getNamePathMapper().getJcrName(oakName)); } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistry.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistry.java (Revision 1857296) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistry.java (Arbeitskopie) @@ -51,6 +51,7 @@ private NodeTypeRegistry(final Root root) { this.ntMgr = new ReadWriteNodeTypeManager() { + @NotNull @Override protected Tree getTypes() { return root.getTree(NODE_TYPES_PATH); Index: oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java =================================================================== --- oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java (Revision 1857296) +++ oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeRegistryTest.java (Arbeitskopie) @@ -182,6 +182,7 @@ registerNodeType(root, "oak6440-1.cnd"); NodeTypeManager readOnlyNtMgr = new ReadOnlyNodeTypeManager() { private Root r = session.getLatestRoot(); + @NotNull @Override protected Tree getTypes() { return r.getTree(NODE_TYPES_PATH); @@ -188,6 +189,7 @@ } }; NodeTypeManager ntMgr = new ReadWriteNodeTypeManager() { + @NotNull @Override protected Tree getTypes() { return root.getTree(NODE_TYPES_PATH); @@ -234,6 +236,7 @@ @Test public void reRegisterNtResource() throws Exception { NodeTypeManager ntMgr = new ReadWriteNodeTypeManager() { + @NotNull @Override protected Tree getTypes() { return root.getTree(NODE_TYPES_PATH); Index: oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/JcrUUIDTest.java =================================================================== --- oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/JcrUUIDTest.java (Revision 1857296) +++ oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/JcrUUIDTest.java (Arbeitskopie) @@ -57,6 +57,7 @@ return root; } + @NotNull @Override protected Tree getTypes() { return root.getTree(NODE_TYPES_PATH); Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/WorkspaceImpl.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/WorkspaceImpl.java (Revision 1857296) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/WorkspaceImpl.java (Arbeitskopie) @@ -81,6 +81,7 @@ getSession().refresh(true); } + @NotNull @Override protected Tree getTypes() { return sessionDelegate.getRoot().getTree(NODE_TYPES_PATH); Index: oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java =================================================================== --- oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java (Revision 1857296) +++ oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java (Arbeitskopie) @@ -42,6 +42,7 @@ import com.google.common.primitives.Ints; import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.oak.api.PropertyState; +import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.PathUtils; @@ -51,7 +52,7 @@ import org.apache.jackrabbit.oak.plugins.index.search.util.FunctionIndexProcessor; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager; -import org.apache.jackrabbit.oak.plugins.tree.TreeUtil; +import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory; import org.apache.jackrabbit.oak.spi.filter.PathFilter; import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry; @@ -774,7 +775,7 @@ } Map> nt2rules = newHashMap(); - ReadOnlyNodeTypeManager ntReg = createNodeTypeManager(TreeFactory.createReadOnlyTree(root)); + ReadOnlyNodeTypeManager ntReg = createNodeTypeManager(RootFactory.createReadOnlyRoot(root)); //Use Tree API to read ordered child nodes Tree ruleTree = TreeFactory.createReadOnlyTree(indexRules); @@ -1593,11 +1594,12 @@ } } - private static ReadOnlyNodeTypeManager createNodeTypeManager(final Tree root) { + private static ReadOnlyNodeTypeManager createNodeTypeManager(final Root root) { return new ReadOnlyNodeTypeManager() { + @NotNull @Override protected Tree getTypes() { - return TreeUtil.getTree(root,NODE_TYPES_PATH); + return root.getTree(NODE_TYPES_PATH); } @NotNull Index: oak-search =================================================================== --- oak-search (Revision 1857296) +++ oak-search (Arbeitskopie) Property changes on: oak-search ___________________________________________________________________ Modified: svn:ignore ## -1,3 +1,5 ## target .* *.iml +*.ipr +*.iws Index: oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java =================================================================== --- oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java (Revision 1857296) +++ oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java (Arbeitskopie) @@ -451,6 +451,7 @@ } else { logger.info("Copying registered node types"); NodeTypeManager ntMgr = new ReadWriteNodeTypeManager() { + @NotNull @Override protected Tree getTypes() { return upgradeRoot.getTree(NODE_TYPES_PATH);