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 md...@apache.org on 2013/04/29 14:42:01 UTC

svn commit: r1477009 [1/3] - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/api/ oak-core/src/main/java/org/apache/jackrabbit/oak/core/ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ oak-core/src/main/java/or...

Author: mduerig
Date: Mon Apr 29 12:41:59 2013
New Revision: 1477009

URL: http://svn.apache.org/r1477009
Log:
OAK-798: Review / refactor TreeImpl and related classes
OAK-709: Consider moving permission evaluation to the node state level
- Rename @NonNull variants of Root.getTree, Tree.getParent and Tree.getChild and deprecate @CheckForNull variants
- Deprecate TreeLocation

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TreeLocation.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/IdentifierManager.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeTypeProviderImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeType.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeDefinitionImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlManagerImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlValidator.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeBitsProvider.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionReader.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionWriter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeMigrator.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidator.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/ResultRowToAuthorizable.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/NodeUtil.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/ContentSessionTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/QueryTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/RootTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/TreeTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/api/UniquePropertyTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/DefaultConflictHandlerOursTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/DefaultConflictHandlerTheirsTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/ImmutableRootTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/ImmutableTreeTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/LargeMoveTestIT.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/RootImplFuzzIT.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/RootImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeLocationTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManagerTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/RelativePathTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistryTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/AbstractQueryTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/JsopUtil.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/user/LoginModuleImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AccessControlManagerImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/AccessControlValidatorTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/EffectivePolicyTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/AbstractOakCoreTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/HiddenTreeTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/RootTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ShadowInvisibleContentTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/TreeTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/AllPermissionsTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionHookTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserInitializerTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserProviderTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserValidatorTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/AbstractAccessControlTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionDefinitionImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/restriction/RestrictionImplTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/user/action/PasswordValidationActionTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/util/JsopUtilTest.java
    jackrabbit/oak/trunk/oak-http/src/main/java/org/apache/jackrabbit/oak/http/OakServlet.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionContext.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/WorkspaceImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/ReadWriteVersionManager.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/SessionImporter.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryTest.java
    jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrCommitHookIT.java
    jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTest.java
    jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryEngineIT.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java Mon Apr 29 12:41:59 2013
@@ -34,7 +34,7 @@ import javax.annotation.Nonnull;
  * {@link Tree} instances may become disconnected after a call to {@link #refresh()},
  * {@link #rebase()} or {@link #commit()}. Any access to disconnected tree instances
  * - except for  {@link Tree#getName()}, {@link Tree#isRoot()}, {@link Tree#getPath()},
- * {@link Tree#getParent()} and {@link Tree#exists()} - will cause an
+ * {@link Tree#getParentOrNull()} and {@link Tree#exists()} - will cause an
  * {@code InvalidStateException}.
  * TODO document iterability / existence (OAK-798)
  */
@@ -89,7 +89,7 @@ public interface Root {
      * @return tree at the given path.
      */
     @Nonnull
-    Tree getTreeNonNull(@Nonnull String path);
+    Tree getTree(@Nonnull String path);
 
     /**
      * Retrieve the {@code Tree} at the given absolute {@code path}. The path
@@ -98,9 +98,11 @@ public interface Root {
      * @param path absolute path to the tree
      * @return tree at the given path or {@code null} if no such tree exists or
      *         if the tree at {@code path} is not accessible.
+     * @deprecated Use {@link #getTree(String)} and {@link Tree#exists()} instead.
      */
     @CheckForNull
-    Tree getTree(String path);
+    @Deprecated
+    Tree getTreeOrNull(String path);
 
     /**
      * Get a tree location for a given absolute {@code path}
@@ -113,13 +115,13 @@ public interface Root {
 
     /**
      * Rebase this root instance to the latest revision. After a call to this method,
-     * trees obtained through {@link #getTree(String)} may become disconnected.
+     * trees obtained through {@link #getTreeOrNull(String)} may become disconnected.
      */
     void rebase();
 
     /**
      * Reverts all changes made to this root and refreshed to the latest trunk.
-     * After a call to this method, trees obtained through {@link #getTree(String)}
+     * After a call to this method, trees obtained through {@link #getTreeOrNull(String)}
      * may become disconnected.
      */
     void refresh();
@@ -127,7 +129,7 @@ public interface Root {
     /**
      * Atomically apply all changes made to the tree beneath this root to the
      * underlying store and refreshes this root. After a call to this method,
-     * all trees obtained through {@link #getTree(String)} become invalid and fresh
+     * all trees obtained through {@link #getTreeOrNull(String)} become invalid and fresh
      * instances must be obtained.
      *
      * @throws CommitFailedException

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java Mon Apr 29 12:41:59 2013
@@ -60,7 +60,7 @@ import javax.annotation.Nullable;
  * {@link Tree} instances may become disconnected after a call to {@link Root#refresh()},
  * {@link Root#rebase()} or {@link Root#commit()}. Any access to disconnected tree instances
  * - except for {@link Tree#getName()}, {@link Tree#isRoot()}, {@link Tree#getPath()},
- * {@link Tree#getParent()} and {@link Tree#exists()} - will cause an
+ * {@link Tree#getParentOrNull()} and {@link Tree#exists()} - will cause an
  * {@code InvalidStateException}.
  * TODO document iterability / existence (OAK-798)
  */
@@ -131,15 +131,17 @@ public interface Tree {
      * @throws IllegalStateException if called on the root tree.
      */
     @Nonnull
-    Tree getParentNonNull();
+    Tree getParent();
 
     /**
      * @return the parent of this {@code Tree} instance. This method returns
      *         {@code null} if the parent is not accessible or if no parent exists (root
      *         node).
+     * @deprecated use {@link #getParent()} and {@link #exists()} instead.
      */
     @CheckForNull
-    Tree getParent();
+    @Deprecated
+    Tree getParentOrNull();
 
     /**
      * Get a property state
@@ -195,7 +197,7 @@ public interface Tree {
      * @return The child with the given {@code name}.
      */
     @Nonnull
-    Tree getChildNonNull(@Nonnull String name);
+    Tree getChild(@Nonnull String name);
 
     /**
      * Get a child of this {@code Tree} instance.
@@ -203,9 +205,11 @@ public interface Tree {
      * @param name The name of the child to retrieve.
      * @return The child with the given {@code name} or {@code null} if no such
      *         child exists or the child is not accessible.
+     * @deprecated use {@link #getChild(String)} and {@link #exists()} instead.
      */
     @CheckForNull
-    Tree getChild(@Nonnull String name);
+    @Deprecated
+    Tree getChildOrNull(@Nonnull String name);
 
     /**
      * Determine if a child of this {@code Tree} instance exists. If no child

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TreeLocation.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TreeLocation.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TreeLocation.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TreeLocation.java Mon Apr 29 12:41:59 2013
@@ -34,7 +34,9 @@ import org.apache.jackrabbit.oak.api.Tre
  * accessed. That is, if a {@code TreeLocation} points to an item which does not exist or
  * is unavailable otherwise (i.e. due to access control restrictions) accessing the tree
  * will return {@code null} at this point.
+ * @deprecated Use {@link Tree} and {@link Tree#exists()} instead.
  */
+@Deprecated
 public interface TreeLocation {
 
     /**

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/IdentifierManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/IdentifierManager.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/IdentifierManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/IdentifierManager.java Mon Apr 29 12:41:59 2013
@@ -224,7 +224,7 @@ public class IdentifierManager {
                 paths = Iterables.filter(paths, new Predicate<String>() {
                     @Override
                     public boolean apply(String path) {
-                        Tree tree = root.getTree(PathUtils.getParentPath(path));
+                        Tree tree = root.getTreeOrNull(PathUtils.getParentPath(path));
                         if (tree != null) {
                             for (String ntName : nodeTypeNames) {
                                 if (nodeTypeManager.isNodeType(tree, ntName)) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java Mon Apr 29 12:41:59 2013
@@ -58,18 +58,19 @@ public final class ImmutableRoot impleme
 
     @Nonnull
     @Override
-    public ImmutableTree getTreeNonNull(@Nonnull String path) {
+    public ImmutableTree getTree(@Nonnull String path) {
         checkArgument(PathUtils.isAbsolute(path));
         ImmutableTree child = rootTree;
         for (String name : elements(path)) {
-            child = child.getChildNonNull(name);
+            child = child.getChild(name);
         }
         return child;
     }
 
     @Override
-    public ImmutableTree getTree(String path) {
-        ImmutableTree tree = getTreeNonNull(path);
+    @Deprecated
+    public ImmutableTree getTreeOrNull(String path) {
+        ImmutableTree tree = getTree(path);
         return tree.exists() ? tree : null;
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java Mon Apr 29 12:41:59 2013
@@ -65,7 +65,7 @@ import org.apache.jackrabbit.oak.spi.sta
  *     <li>{@link ParentProvider#ROOTPROVIDER}: the default parent provider for
  *     the root tree. All children will get {@link DefaultParentProvider}</li>
  *     <li>{@link ParentProvider#UNSUPPORTED}: throws {@code UnsupportedOperationException}
- *     upon hierarchy related methods like {@link #getParent()}, {@link #getPath()} and
+ *     upon hierarchy related methods like {@link #getParentOrNull()}, {@link #getPath()} and
  *     {@link #getIdentifier()}</li>
  * </ul>
  *
@@ -129,7 +129,7 @@ public final class ImmutableTree extends
         if (root instanceof RootImpl) {
             return new ImmutableTree(((RootImpl) root).getBaseState(), typeProvider);
         } else if (root instanceof ImmutableRoot) {
-            return ((ImmutableRoot) root).getTree("/");
+            return ((ImmutableRoot) root).getTreeOrNull("/");
         } else {
             throw new IllegalArgumentException("Unsupported Root implementation.");
         }
@@ -149,7 +149,7 @@ public final class ImmutableTree extends
                 path = "/";
             } else {
                 StringBuilder sb = new StringBuilder();
-                ImmutableTree parent = getParent();
+                ImmutableTree parent = getParentOrNull();
                 sb.append(parent.getPath());
                 if (!parent.isRoot()) {
                     sb.append('/');
@@ -162,20 +162,22 @@ public final class ImmutableTree extends
     }
 
     @Override
-    public ImmutableTree getParent() {
+    @Deprecated
+    public ImmutableTree getParentOrNull() {
         return parentProvider.getParent();
     }
 
     @Nonnull
     @Override
-    public ImmutableTree getChildNonNull(@Nonnull String name) {
+    public ImmutableTree getChild(@Nonnull String name) {
         NodeState child = state.getChildNode(name);
         return new ImmutableTree(this, name, child);
     }
 
     @Override
-    public ImmutableTree getChild(@Nonnull String name) {
-        ImmutableTree child = getChildNonNull(name);
+    @Deprecated
+    public ImmutableTree getChildOrNull(@Nonnull String name) {
+        ImmutableTree child = getChild(name);
         return child.exists() ? child : null;
     }
 
@@ -264,10 +266,10 @@ public final class ImmutableTree extends
         PropertyState property = state.getProperty(JcrConstants.JCR_UUID);
         if (property != null) {
             return property.getValue(STRING);
-        } else if (getParent().isRoot()) {
+        } else if (getParentOrNull().isRoot()) {
             return "/";
         } else {
-            return PathUtils.concat(getParent().getIdentifier(), getName());
+            return PathUtils.concat(getParentOrNull().getIdentifier(), getName());
         }
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java Mon Apr 29 12:41:59 2013
@@ -96,13 +96,14 @@ public class ReadOnlyTree implements Tre
 
     @Nonnull
     @Override
-    public Tree getParentNonNull() {
+    public Tree getParent() {
         checkState(parent != null, "root tree does not have a parent");
         return parent;
     }
 
     @Override
-    public Tree getParent() {
+    @Deprecated
+    public Tree getParentOrNull() {
         return parent;
     }
 
@@ -137,13 +138,14 @@ public class ReadOnlyTree implements Tre
 
     @Nonnull
     @Override
-    public ReadOnlyTree getChildNonNull(@Nonnull String name) {
+    public ReadOnlyTree getChild(@Nonnull String name) {
         return new ReadOnlyTree(this, name, state.getChildNode(name));
     }
 
     @Override
-    public ReadOnlyTree getChild(@Nonnull String name) {
-        ReadOnlyTree child = getChildNonNull(name);
+    @Deprecated
+    public ReadOnlyTree getChildOrNull(@Nonnull String name) {
+        ReadOnlyTree child = getChild(name);
         return child.exists() ? child : null;
     }
 
@@ -294,7 +296,7 @@ public class ReadOnlyTree implements Tre
 
         @Override
         protected ReadOnlyTree getChildTree(String name) {
-            return tree.getChild(name);
+            return tree.getChildOrNull(name);
         }
 
         @Override

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java Mon Apr 29 12:41:59 2013
@@ -185,8 +185,8 @@ public class RootImpl implements Root {
         boolean success = branch.move(sourcePath, destPath);
         reset();
         if (success) {
-            getTree(getParentPath(sourcePath)).updateChildOrder();
-            getTree(getParentPath(destPath)).updateChildOrder();
+            getTreeOrNull(getParentPath(sourcePath)).updateChildOrder();
+            getTreeOrNull(getParentPath(destPath)).updateChildOrder();
             lastMove = lastMove.setMove(sourcePath, destParent, getName(destPath));
         }
         return success;
@@ -199,19 +199,20 @@ public class RootImpl implements Root {
         boolean success = branch.copy(sourcePath, destPath);
         reset();
         if (success) {
-            getTree(getParentPath(destPath)).updateChildOrder();
+            getTreeOrNull(getParentPath(destPath)).updateChildOrder();
         }
         return success;
     }
 
     @Override
-    public TreeImpl getTreeNonNull(@Nonnull String path) {
+    public TreeImpl getTree(@Nonnull String path) {
         checkLive();
         return rootTree.getTree(path);
     }
 
     @Override
-    public TreeImpl getTree(String path) {
+    @Deprecated
+    public TreeImpl getTreeOrNull(String path) {
         checkLive();
         return rootTree.getTreeOrNull(path);
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java Mon Apr 29 12:41:59 2013
@@ -146,14 +146,15 @@ public class TreeImpl implements Tree {
     }
 
     @Override
-    public Tree getParentNonNull() {
+    public Tree getParent() {
         checkState(parent != null, "root tree does not have a parent");
         root.checkLive();
         return parent;
     }
 
     @Override
-    public Tree getParent() {
+    @Deprecated
+    public Tree getParentOrNull() {
         enterNoStateCheck();
         if (parent != null && parent.nodeBuilder.exists()) {
             return parent;
@@ -214,15 +215,16 @@ public class TreeImpl implements Tree {
     }
 
     @Override
-    public TreeImpl getChildNonNull(@Nonnull String name) {
+    public TreeImpl getChild(@Nonnull String name) {
         checkNotNull(name);
         enterNoStateCheck();
         return new TreeImpl(root, this, name, pendingMoves);
     }
 
     @Override
-    public TreeImpl getChild(@Nonnull String name) {
-        TreeImpl child = getChildNonNull(name);
+    @Deprecated
+    public TreeImpl getChildOrNull(@Nonnull String name) {
+        TreeImpl child = getChild(name);
         return child.nodeBuilder.exists() ? child : null;
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeTypeProviderImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeTypeProviderImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeTypeProviderImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeTypeProviderImpl.java Mon Apr 29 12:41:59 2013
@@ -36,7 +36,7 @@ public final class TreeTypeProviderImpl 
 
     @Override
     public int getType(ImmutableTree tree) {
-        ImmutableTree parent = tree.getParent();
+        ImmutableTree parent = tree.getParentOrNull();
         if (parent == null) {
             return TYPE_DEFAULT;
         }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/Namespaces.java Mon Apr 29 12:41:59 2013
@@ -52,9 +52,9 @@ public class Namespaces implements Names
     public static Map<String, String> getNamespaceMap(Tree root) {
         Map<String, String> map = new HashMap<String, String>(DEFAULTS);
 
-        Tree system = root.getChild(JcrConstants.JCR_SYSTEM);
+        Tree system = root.getChildOrNull(JcrConstants.JCR_SYSTEM);
         if (system != null) {
-            Tree namespaces = system.getChild(REP_NAMESPACES);
+            Tree namespaces = system.getChildOrNull(REP_NAMESPACES);
             if (namespaces != null) {
                 for (PropertyState property : namespaces.getProperties()) {
                     String prefix = property.getName();

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/ReadWriteNamespaceRegistry.java Mon Apr 29 12:41:59 2013
@@ -59,10 +59,10 @@ public abstract class ReadWriteNamespace
     }
 
     private static Tree getOrCreate(Root root, String... path) {
-        Tree tree = root.getTree("/");
+        Tree tree = root.getTreeOrNull("/");
         assert tree != null;
         for (String name : path) {
-            Tree child = tree.getChild(name);
+            Tree child = tree.getChildOrNull(name);
             if (child == null) {
                 child = tree.addChild(name);
             }
@@ -115,7 +115,7 @@ public abstract class ReadWriteNamespace
     @Override
     public void unregisterNamespace(String prefix) throws RepositoryException {
         Root root = getWriteRoot();
-        Tree namespaces = root.getTree(NAMESPACES_PATH);
+        Tree namespaces = root.getTreeOrNull(NAMESPACES_PATH);
         if (namespaces == null || !namespaces.hasProperty(prefix)) {
             throw new NamespaceException(
                     "Namespace mapping from " + prefix + " to "

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeType.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeType.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeType.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeType.java Mon Apr 29 12:41:59 2013
@@ -312,7 +312,7 @@ public class EffectiveNodeType {
             }
             for (NodeDefinition nd : nodeType.getChildNodeDefinitions()) {
                 String name = nd.getName();
-                if (nd.isMandatory() && !nd.isProtected() && tree.getChild(name) == null) {
+                if (nd.isMandatory() && !nd.isProtected() && tree.getChildOrNull(name) == null) {
                     throw new ConstraintViolationException(
                             "Node '" + name + "' in '" + nodeType.getName() + "' is mandatory");
                 }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeDefinitionImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeDefinitionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeDefinitionImpl.java Mon Apr 29 12:41:59 2013
@@ -62,9 +62,9 @@ class NodeDefinitionImpl extends ItemDef
         }
 
         NodeType[] types = new NodeType[oakNames.length];
-        Tree root = definition.getParent().getParent();
+        Tree root = definition.getParentOrNull().getParentOrNull();
         for (int i = 0; i < oakNames.length; i++) {
-            Tree type = root.getChild(oakNames[i]);
+            Tree type = root.getChildOrNull(oakNames[i]);
             checkState(type != null);
             types[i] = new NodeTypeImpl(type, mapper);
         }
@@ -85,8 +85,8 @@ class NodeDefinitionImpl extends ItemDef
     public NodeType getDefaultPrimaryType() {
         String oakName = getName(JcrConstants.JCR_DEFAULTPRIMARYTYPE);
         if (oakName != null) {
-            Tree root = definition.getParent().getParent();
-            Tree type = root.getChild(oakName);
+            Tree root = definition.getParentOrNull().getParentOrNull();
+            Tree type = root.getChildOrNull(oakName);
             checkState(type != null);
             return new NodeTypeImpl(type, mapper);
         } else {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java Mon Apr 29 12:41:59 2013
@@ -197,10 +197,10 @@ class NodeTypeImpl extends AbstractTypeD
     private void addSupertypes(Tree type, Map<String, NodeType> supertypes) {
         PropertyState property = type.getProperty(JCR_SUPERTYPES);
         if (property != null) {
-            Tree root = definition.getParent();
+            Tree root = definition.getParentOrNull();
             for (String oakName : property.getValue(Type.NAMES)) {
                 if (!supertypes.containsKey(oakName)) {
-                    Tree supertype = root.getChild(oakName);
+                    Tree supertype = root.getChildOrNull(oakName);
                     checkState(supertype != null);
                     supertypes.put(
                             oakName, new NodeTypeImpl(supertype, mapper));
@@ -216,9 +216,9 @@ class NodeTypeImpl extends AbstractTypeD
         String[] oakNames = getNames(JCR_SUPERTYPES);
         if (oakNames != null && oakNames.length > 0) {
             supertypes = new NodeType[oakNames.length];
-            Tree root = definition.getParent();
+            Tree root = definition.getParentOrNull();
             for (int i = 0; i < oakNames.length; i++) {
-                Tree type = root.getChild(oakNames[i]);
+                Tree type = root.getChildOrNull(oakNames[i]);
                 checkState(type != null);
                 supertypes[i] = new NodeTypeImpl(type, mapper);
             }
@@ -230,7 +230,7 @@ class NodeTypeImpl extends AbstractTypeD
     public NodeTypeIterator getSubtypes() {
         Map<String, Set<String>> inheritance = Maps.newHashMap();
         
-        Tree root = definition.getParent();
+        Tree root = definition.getParentOrNull();
         for (Tree child : root.getChildren()) {
             String oakName = getOakName(child);
             PropertyState supertypes = child.getProperty(JCR_SUPERTYPES);
@@ -258,7 +258,7 @@ class NodeTypeImpl extends AbstractTypeD
         if (subnames != null) {
             for (String subname : subnames) {
                 if (!subtypes.containsKey(subname)) {
-                    Tree tree = root.getChild(subname);
+                    Tree tree = root.getChildOrNull(subname);
                     subtypes.put(subname, new NodeTypeImpl(tree, mapper));
                 }
             }
@@ -270,7 +270,7 @@ class NodeTypeImpl extends AbstractTypeD
         List<NodeType> subtypes = Lists.newArrayList();
 
         String oakName = getOakName();
-        Tree root = definition.getParent();
+        Tree root = definition.getParentOrNull();
         for (Tree child : root.getChildren()) {
             PropertyState supertypes = child.getProperty(JCR_SUPERTYPES);
             if (supertypes != null) {
@@ -429,7 +429,7 @@ class NodeTypeImpl extends AbstractTypeD
     }
 
     private ReadOnlyNodeTypeManager getManager() {
-        final Tree types = definition.getParent();
+        final Tree types = definition.getParentOrNull();
         return new ReadOnlyNodeTypeManager() {
             @Override @CheckForNull
             protected Tree getTypes() {
@@ -471,7 +471,7 @@ class NodeTypeImpl extends AbstractTypeD
     }
 
     Iterable<PropertyDefinition> getDeclaredNamedPropertyDefinitions(String oakName) {
-        Tree named = definition.getChild("oak:namedPropertyDefinitions");
+        Tree named = definition.getChildOrNull("oak:namedPropertyDefinitions");
         if (named != null) {
             String escapedName;
             if (JCR_PRIMARYTYPE.equals(oakName)) {
@@ -483,7 +483,7 @@ class NodeTypeImpl extends AbstractTypeD
             } else {
                 escapedName = oakName;
             }
-            Tree definitions = named.getChild(escapedName);
+            Tree definitions = named.getChildOrNull(escapedName);
             if (definitions != null) {
                 return Iterables.transform(
                         definitions.getChildren(),
@@ -500,7 +500,7 @@ class NodeTypeImpl extends AbstractTypeD
     }
 
     Iterable<PropertyDefinition> getDeclaredResidualPropertyDefinitions() {
-        Tree definitions = definition.getChild("oak:residualPropertyDefinitions");
+        Tree definitions = definition.getChildOrNull("oak:residualPropertyDefinitions");
         if (definitions != null) {
             return Iterables.transform(
                     definitions.getChildren(),
@@ -516,9 +516,9 @@ class NodeTypeImpl extends AbstractTypeD
     }
 
     Iterable<NodeDefinition> getDeclaredNamedNodeDefinitions(String oakName) {
-        Tree named = definition.getChild("oak:namedChildNodeDefinitions");
+        Tree named = definition.getChildOrNull("oak:namedChildNodeDefinitions");
         if (named != null) {
-            Tree definitions = named.getChild(oakName);
+            Tree definitions = named.getChildOrNull(oakName);
             if (definitions != null) {
                 return Iterables.transform(
                         definitions.getChildren(),
@@ -535,7 +535,7 @@ class NodeTypeImpl extends AbstractTypeD
     }
 
     Iterable<NodeDefinition> getDeclaredResidualNodeDefinitions() {
-        Tree definitions = definition.getChild("oak:residualChildNodeDefinitions");
+        Tree definitions = definition.getChildOrNull("oak:residualChildNodeDefinitions");
         if (definitions != null) {
             return Iterables.transform(
                     definitions.getChildren(),

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java Mon Apr 29 12:41:59 2013
@@ -124,7 +124,7 @@ public abstract class ReadOnlyNodeTypeMa
         return new ReadOnlyNodeTypeManager() {
             @Override
             protected Tree getTypes() {
-                return root.getTree(NODE_TYPES_PATH);
+                return root.getTreeOrNull(NODE_TYPES_PATH);
             }
 
             @Nonnull
@@ -308,7 +308,7 @@ public abstract class ReadOnlyNodeTypeMa
             return true;
         }
 
-        Tree type = types.getChild(typeName);
+        Tree type = types.getChildOrNull(typeName);
         if (type == null) {
             return false;
         }
@@ -411,7 +411,7 @@ public abstract class ReadOnlyNodeTypeMa
     NodeTypeImpl internalGetNodeType(String oakName) throws NoSuchNodeTypeException {
         Tree types = getTypes();
         if (types != null) {
-            Tree type = types.getChild(oakName);
+            Tree type = types.getChildOrNull(oakName);
             if (type != null) {
                 return new NodeTypeImpl(type, getNamePathMapper());
             }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/BuiltInNodeTypes.java Mon Apr 29 12:41:59 2013
@@ -55,7 +55,7 @@ class BuiltInNodeTypes {
         this.ntMgr =  new ReadWriteNodeTypeManager() {
             @Override
             protected Tree getTypes() {
-                return root.getTree(NODE_TYPES_PATH);
+                return root.getTreeOrNull(NODE_TYPES_PATH);
             }
 
             @Nonnull
@@ -68,7 +68,7 @@ class BuiltInNodeTypes {
         this.nsReg = new ReadWriteNamespaceRegistry() {
             @Override
             protected Tree getReadTree() {
-                return root.getTree("/");
+                return root.getTreeOrNull("/");
             }
             @Override
             protected Root getWriteRoot() {
@@ -80,7 +80,7 @@ class BuiltInNodeTypes {
                 new GlobalNameMapper() {
                     @Override
                     protected Map<String, String> getNamespaceMap() {
-                        return Namespaces.getNamespaceMap(root.getTree("/"));
+                        return Namespaces.getNamespaceMap(root.getTreeOrNull("/"));
                     }
                 }));
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/NodeTypeTemplateImpl.java Mon Apr 29 12:41:59 2013
@@ -127,7 +127,7 @@ class NodeTypeTemplateImpl extends Named
     Tree writeTo(Tree parent, boolean allowUpdate) throws RepositoryException {
         String oakName = getOakName();
 
-        Tree type = parent.getChild(oakName);
+        Tree type = parent.getChildOrNull(oakName);
         if (type != null) {
             if (allowUpdate) {
                 type.remove();

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/ReadWriteNodeTypeManager.java Mon Apr 29 12:41:59 2013
@@ -164,11 +164,11 @@ public abstract class ReadWriteNodeTypeM
     }
 
     private static Tree getOrCreateNodeTypes(Root root) {
-        Tree types = root.getTree(NODE_TYPES_PATH);
+        Tree types = root.getTreeOrNull(NODE_TYPES_PATH);
         if (types == null) {
-            Tree system = root.getTree('/' + JCR_SYSTEM);
+            Tree system = root.getTreeOrNull('/' + JCR_SYSTEM);
             if (system == null) {
-                system = root.getTree("/").addChild(JCR_SYSTEM);
+                system = root.getTreeOrNull("/").addChild(JCR_SYSTEM);
             }
             types = system.addChild(JCR_NODE_TYPES);
         }
@@ -179,9 +179,9 @@ public abstract class ReadWriteNodeTypeM
     public void unregisterNodeType(String name) throws RepositoryException {
         Tree type = null;
         Root root = getWriteRoot();
-        Tree types = root.getTree(NODE_TYPES_PATH);
+        Tree types = root.getTreeOrNull(NODE_TYPES_PATH);
         if (types != null) {
-            type = types.getChild(getOakName(name));
+            type = types.getChildOrNull(getOakName(name));
         }
         if (type == null) {
             throw new NoSuchNodeTypeException("Node type " + name + " can not be unregistered.");
@@ -204,14 +204,14 @@ public abstract class ReadWriteNodeTypeM
     @Override
     public void unregisterNodeTypes(String[] names) throws RepositoryException {
         Root root = getWriteRoot();
-        Tree types = root.getTree(NODE_TYPES_PATH);
+        Tree types = root.getTreeOrNull(NODE_TYPES_PATH);
         if (types == null) {
             throw new NoSuchNodeTypeException("Node types can not be unregistered.");
         }
 
         try {
             for (String name : names) {
-                Tree type = types.getChild(getOakName(name));
+                Tree type = types.getChildOrNull(getOakName(name));
                 if (type == null) {
                     throw new NoSuchNodeTypeException("Node type " + name + " can not be unregistered.");
                 }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventCollector.java Mon Apr 29 12:41:59 2013
@@ -146,7 +146,7 @@ class EventCollector implements Runnable
     }
 
     private static Tree getOrCreate(Tree parent, String name) {
-        Tree child = parent.getChild(name);
+        Tree child = parent.getChildOrNull(name);
         if (child == null) {
             child = parent.addChild(name);
         }
@@ -155,7 +155,7 @@ class EventCollector implements Runnable
 
     private Tree getOrCreateListenerSpec(Root root) {
         return getOrCreate(getOrCreate(getOrCreate(
-                root.getTree('/' + JCR_SYSTEM), REP_OBSERVATION), LISTENERS), getId());
+                root.getTreeOrNull('/' + JCR_SYSTEM), REP_OBSERVATION), LISTENERS), getId());
     }
 
     private Root getLatestRoot() {
@@ -180,7 +180,7 @@ class EventCollector implements Runnable
 
     private void clearFilterSpec() throws CommitFailedException {
         Root root = getLatestRoot();
-        Tree listenerSpec = root.getTree(LISTENER_PATH + '/' + getId());
+        Tree listenerSpec = root.getTreeOrNull(LISTENER_PATH + '/' + getId());
         if  (listenerSpec != null) {
             listenerSpec.remove();
             root.commit();

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/EventQueueReader.java Mon Apr 29 12:41:59 2013
@@ -73,11 +73,11 @@ public class EventQueueReader {
 
     private Iterator<Tree> getEvents(long next, final String id) {
         if (bundles == null) {
-            bundles = root.getTree(EVENTS_PATH);
+            bundles = root.getTreeOrNull(EVENTS_PATH);
         }
 
         if (bundles != null) {
-            Tree bundle = bundles.getChild(String.valueOf(next));
+            Tree bundle = bundles.getChildOrNull(String.valueOf(next));
             if (bundle != null) {
                 nextBundleId++;
                 if (bundle.getChildrenCount() > 0) {
@@ -97,9 +97,9 @@ public class EventQueueReader {
     private Event createEvent(Tree event, String id) {
         int type = (int) getLong(event, TYPE, 0);
         String path = getJcrPath(event);
-        String userId = getString(event.getChild(id), USER_ID);
+        String userId = getString(event.getChildOrNull(id), USER_ID);
         long date = getLong(event, DATE, 0);
-        String userData = getString(event.getChild(id), USER_DATA);
+        String userData = getString(event.getChildOrNull(id), USER_DATA);
         return new EventImpl(type, path, userId, id, Collections.emptyMap(), date, userData);
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation2/ObservationManagerImpl2.java Mon Apr 29 12:41:59 2013
@@ -73,7 +73,7 @@ public class ObservationManagerImpl2 imp
         if (EventQueueWriterProvider.BUNDLE_ID.get() == 0) {
             try {
                 Root root = contentSession.getLatestRoot();
-                Tree events = root.getTree(ObservationConstants.EVENTS_PATH);
+                Tree events = root.getTreeOrNull(ObservationConstants.EVENTS_PATH);
                 if (events != null) {
                     events.remove();
                     root.commit();

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java Mon Apr 29 12:41:59 2013
@@ -281,11 +281,11 @@ public class SelectorImpl extends Source
                     return null;
                 }
                 if (p.equals("..")) {
-                    t = t.getParent();
+                    t = t.getParentOrNull();
                 } else if (p.equals(".")) {
                     // same node
                 } else {
-                    t = t.getChild(p);
+                    t = t.getChildOrNull(p);
                 }
             }
             propertyName = PathUtils.getName(propertyName);

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImpl.java Mon Apr 29 12:41:59 2013
@@ -163,7 +163,7 @@ public class TokenProviderImpl implement
         try {
             Authorizable user = userManager.getAuthorizable(userId);
             if (user != null && !user.isGroup()) {
-                NodeUtil userNode = new NodeUtil(root.getTree(user.getPath()));
+                NodeUtil userNode = new NodeUtil(root.getTreeOrNull(user.getPath()));
                 NodeUtil tokenParent = userNode.getChild(TOKENS_NODE_NAME);
                 if (tokenParent == null) {
                     tokenParent = userNode.addChild(TOKENS_NODE_NAME, TOKENS_NT_NAME);
@@ -308,7 +308,7 @@ public class TokenProviderImpl implement
     @CheckForNull
     private Tree getTokenTree(TokenInfo tokenInfo) {
         if (tokenInfo instanceof TokenInfoImpl) {
-            return root.getTree(((TokenInfoImpl) tokenInfo).tokenPath);
+            return root.getTreeOrNull(((TokenInfoImpl) tokenInfo).tokenPath);
         } else {
             return null;
         }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java Mon Apr 29 12:41:59 2013
@@ -189,7 +189,7 @@ class AccessControlImporter implements P
     @CheckForNull
     private JackrabbitAccessControlList getACL(Tree tree) throws RepositoryException {
         String nodeName = tree.getName();
-        Tree parent = tree.getParent();
+        Tree parent = tree.getParentOrNull();
 
         if (parent != null) {
             if (AccessControlConstants.REP_POLICY.equals(nodeName)

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlManagerImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlManagerImpl.java Mon Apr 29 12:41:59 2013
@@ -170,7 +170,7 @@ public class AccessControlManagerImpl im
         if (oakPath != null) {
             String parentPath = Text.getRelativeParent(oakPath, 1);
             while (!parentPath.isEmpty()) {
-                Tree t = root.getTree(parentPath);
+                Tree t = root.getTreeOrNull(parentPath);
                 AccessControlPolicy plc = createACL(parentPath, t, true);
                 if (plc != null) {
                     effective.add(plc);
@@ -359,7 +359,7 @@ public class AccessControlManagerImpl im
         for (ResultRow row : aceResult.getRows()) {
             String acePath = row.getPath();
             String aclName = Text.getName(Text.getRelativeParent(acePath, 1));
-            Tree accessControlledTree = root.getTree(Text.getRelativeParent(acePath, 2));
+            Tree accessControlledTree = root.getTreeOrNull(Text.getRelativeParent(acePath, 2));
 
             if (aclName.isEmpty() || accessControlledTree == null) {
                 log.debug("Isolated access control entry -> ignore query result at " + acePath);
@@ -411,7 +411,7 @@ public class AccessControlManagerImpl im
 
     @Nonnull
     private Tree getTree(@Nullable String oakPath, long permissions) throws RepositoryException {
-        Tree tree = (oakPath == null) ? root.getTree("/") : root.getTree(oakPath);
+        Tree tree = (oakPath == null) ? root.getTreeOrNull("/") : root.getTreeOrNull(oakPath);
         if (tree == null) {
             throw new PathNotFoundException("No tree at " + oakPath);
         }
@@ -477,7 +477,7 @@ public class AccessControlManagerImpl im
     @CheckForNull
     private Tree getAclTree(@Nullable String oakPath, @Nonnull Tree accessControlledTree) {
         if (isAccessControlled(accessControlledTree, getMixinName(oakPath))) {
-            Tree policyTree = accessControlledTree.getChild(getAclName(oakPath));
+            Tree policyTree = accessControlledTree.getChildOrNull(getAclName(oakPath));
             if (policyTree != null) {
                 return policyTree;
             }
@@ -518,7 +518,7 @@ public class AccessControlManagerImpl im
         String mixinName = getMixinName(oakPath);
 
         if (accessControlledTree != null && isAccessControlled(accessControlledTree, mixinName)) {
-            Tree aclTree = accessControlledTree.getChild(aclName);
+            Tree aclTree = accessControlledTree.getChildOrNull(aclName);
             if (aclTree != null) {
                 List<JackrabbitAccessControlEntry> entries = new ArrayList<JackrabbitAccessControlEntry>();
                 for (Tree child : aclTree.getChildren()) {
@@ -543,7 +543,7 @@ public class AccessControlManagerImpl im
         RestrictionProvider restrProvider = new PrincipalRestrictionProvider(restrictionProvider, namePathMapper);
         List<JackrabbitAccessControlEntry> entries = new ArrayList<JackrabbitAccessControlEntry>();
         for (ResultRow row : aceResult.getRows()) {
-            Tree aceTree = root.getTree(row.getPath());
+            Tree aceTree = root.getTreeOrNull(row.getPath());
             if (isACE(aceTree)) {
                 String aclPath = Text.getRelativeParent(aceTree.getPath(), 1);
                 String path;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlValidator.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlValidator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlValidator.java Mon Apr 29 12:41:59 2013
@@ -90,7 +90,7 @@ class AccessControlValidator extends Def
 
     @Override
     public Validator childNodeAdded(String name, NodeState after) throws CommitFailedException {
-        Tree treeAfter = checkNotNull(parentAfter.getChild(name));
+        Tree treeAfter = checkNotNull(parentAfter.getChildOrNull(name));
 
         checkValidTree(parentAfter, treeAfter);
         return new AccessControlValidator(null, treeAfter, privileges, restrictionProvider, ntMgr);
@@ -98,8 +98,8 @@ class AccessControlValidator extends Def
 
     @Override
     public Validator childNodeChanged(String name, NodeState before, NodeState after) throws CommitFailedException {
-        Tree treeBefore = checkNotNull(parentBefore.getChild(name));
-        Tree treeAfter = checkNotNull(parentAfter.getChild(name));
+        Tree treeBefore = checkNotNull(parentBefore.getChildOrNull(name));
+        Tree treeAfter = checkNotNull(parentAfter.getChildOrNull(name));
 
         checkValidTree(parentAfter, treeAfter);
         return new AccessControlValidator(treeBefore, treeAfter, privileges, restrictionProvider, ntMgr);
@@ -173,7 +173,7 @@ class AccessControlValidator extends Def
     }
 
     private void checkValidAccessControlEntry(Tree aceNode) throws CommitFailedException {
-        Tree parent = aceNode.getParent();
+        Tree parent = aceNode.getParentOrNull();
         if (parent == null || !NT_REP_ACL.equals(TreeUtil.getPrimaryTypeName(parent))) {
             throw accessViolation(7, "Isolated access control entry at " + aceNode.getPath());
         }
@@ -208,7 +208,7 @@ class AccessControlValidator extends Def
 
     private void checkValidRestrictions(Tree aceTree) throws CommitFailedException {
         String path;
-        Tree aclTree = checkNotNull(aceTree.getParent());
+        Tree aclTree = checkNotNull(aceTree.getParentOrNull());
         String aclPath = aclTree.getPath();
         if (REP_REPO_POLICY.equals(Text.getName(aclPath))) {
             path = null;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/CompiledPermissionImpl.java Mon Apr 29 12:41:59 2013
@@ -95,7 +95,7 @@ class CompiledPermissionImpl implements 
         if (!refresh) {
             for (Map.Entry<String, ImmutableTree> entry : trees.entrySet()) {
                 ImmutableTree t = entry.getValue();
-                ImmutableTree t2 = permissionsTree.getChild(t.getName());
+                ImmutableTree t2 = permissionsTree.getChildOrNull(t.getName());
                 if (t2 != null && !t.equals(t2)) {
                     refresh = true;
                     break;
@@ -152,7 +152,7 @@ class CompiledPermissionImpl implements 
     //------------------------------------------------------------< private >---
     @CheckForNull
     private static ImmutableTree getPrincipalRoot(ImmutableTree permissionsTree, Principal principal) {
-        return permissionsTree.getChild(Text.escapeIllegalJcrChars(principal.getName()));
+        return permissionsTree.getChildOrNull(Text.escapeIllegalJcrChars(principal.getName()));
     }
 
     private void buildEntries(@Nullable ImmutableTree permissionsTree) {
@@ -205,7 +205,7 @@ class CompiledPermissionImpl implements 
         if (respectParent) {
             parentAllowBits = PrivilegeBits.getInstance();
             parentDenyBits = PrivilegeBits.getInstance();
-            parent = (tree != null) ? tree.getParent() : null;
+            parent = (tree != null) ? tree.getParentOrNull() : null;
             parentPath = (path != null) ? Strings.emptyToNull(Text.getRelativeParent(path, 1)) : null;
         } else {
             parentAllowBits = PrivilegeBits.EMPTY;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java Mon Apr 29 12:41:59 2013
@@ -251,7 +251,7 @@ public class PermissionProviderImpl impl
                 }
                 break;
             }
-            t = t.getParent();
+            t = t.getParentOrNull();
         }
 
         if (versionablePath == null || versionablePath.length() == 0) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionValidator.java Mon Apr 29 12:41:59 2013
@@ -87,7 +87,7 @@ class PermissionValidator extends Defaul
         if (TreeImpl.OAK_CHILD_ORDER.equals(after.getName())) {
             String childName = new ChildOrderDiff(before, after).firstReordered();
             if (childName != null) {
-                Tree child = parentAfter.getChild(childName);
+                Tree child = parentAfter.getChildOrNull(childName);
                 checkPermissions(child, false, Permissions.MODIFY_CHILD_NODE_COLLECTION);
             } // else: no re-order but only internal update
         } else {
@@ -102,7 +102,7 @@ class PermissionValidator extends Defaul
 
     @Override
     public Validator childNodeAdded(String name, NodeState after) throws CommitFailedException {
-        Tree child = checkNotNull(parentAfter.getChild(name));
+        Tree child = checkNotNull(parentAfter.getChildOrNull(name));
         if (isVersionstorageTree(child)) {
             child = getVersionHistoryTree(child);
             if (child == null) {
@@ -117,8 +117,8 @@ class PermissionValidator extends Defaul
 
     @Override
     public Validator childNodeChanged(String name, NodeState before, NodeState after) throws CommitFailedException {
-        Tree childBefore = parentBefore.getChild(name);
-        Tree childAfter = parentAfter.getChild(name);
+        Tree childBefore = parentBefore.getChildOrNull(name);
+        Tree childAfter = parentAfter.getChildOrNull(name);
 
         // TODO
 
@@ -127,7 +127,7 @@ class PermissionValidator extends Defaul
 
     @Override
     public Validator childNodeDeleted(String name, NodeState before) throws CommitFailedException {
-        Tree child = checkNotNull(parentBefore.getChild(name));
+        Tree child = checkNotNull(parentBefore.getChildOrNull(name));
         if (isVersionstorageTree(child)) {
             // TODO: check again
             throw new CommitFailedException(

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java Mon Apr 29 12:41:59 2013
@@ -165,7 +165,7 @@ public class RestrictionProviderImpl imp
 
     @Nonnull
     private Tree getRestrictionsTree(Tree aceTree) {
-        Tree restrictions = aceTree.getChild(REP_RESTRICTIONS);
+        Tree restrictions = aceTree.getChildOrNull(REP_RESTRICTIONS);
         if (restrictions == null) {
             // no rep:restrictions tree -> read from aceTree for backwards compatibility
             restrictions = aceTree;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeBitsProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeBitsProvider.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeBitsProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeBitsProvider.java Mon Apr 29 12:41:59 2013
@@ -60,7 +60,7 @@ public final class PrivilegeBitsProvider
      */
     @CheckForNull
     Tree getPrivilegesTree() {
-        return root.getTree(PRIVILEGES_PATH);
+        return root.getTreeOrNull(PRIVILEGES_PATH);
     }
 
     @Nonnull
@@ -91,7 +91,7 @@ public final class PrivilegeBitsProvider
         }
         PrivilegeBits bits = PrivilegeBits.getInstance();
         for (String privilegeName : privilegeNames) {
-            Tree defTree = privilegesTree.getChild(checkNotNull(privilegeName));
+            Tree defTree = privilegesTree.getChildOrNull(checkNotNull(privilegeName));
             if (defTree != null) {
                 bits.add(PrivilegeBits.getInstance(defTree));
             }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionReader.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionReader.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionReader.java Mon Apr 29 12:41:59 2013
@@ -38,7 +38,7 @@ class PrivilegeDefinitionReader implemen
     private final Tree privilegesTree;
 
     PrivilegeDefinitionReader(@Nonnull Root root) {
-        this.privilegesTree = root.getTree(PRIVILEGES_PATH);
+        this.privilegesTree = root.getTreeOrNull(PRIVILEGES_PATH);
     }
 
     /**
@@ -74,7 +74,7 @@ class PrivilegeDefinitionReader implemen
         if (privilegesTree == null) {
             return null;
         } else {
-            Tree definitionTree = privilegesTree.getChild(privilegeName);
+            Tree definitionTree = privilegesTree.getChildOrNull(privilegeName);
             return (isPrivilegeDefinition(definitionTree)) ? readDefinition(definitionTree) : null;
         }
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionWriter.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionWriter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeDefinitionWriter.java Mon Apr 29 12:41:59 2013
@@ -96,7 +96,7 @@ class PrivilegeDefinitionWriter implemen
     private void writeDefinitions(Iterable<PrivilegeDefinition> definitions) throws RepositoryException {
         try {
             // make sure the privileges path is defined
-            Tree privilegesTree = root.getTree(PRIVILEGES_PATH);
+            Tree privilegesTree = root.getTreeOrNull(PRIVILEGES_PATH);
             if (privilegesTree == null) {
                 throw new RepositoryException("Privilege store does not exist.");
             }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeMigrator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeMigrator.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeMigrator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeMigrator.java Mon Apr 29 12:41:59 2013
@@ -72,7 +72,7 @@ public class PrivilegeMigrator {
 
                 @Override
                 protected Tree getReadTree() {
-                    return root.getTree("/");
+                    return root.getTreeOrNull("/");
                 }
             };
             for (PrivilegeDefinition def : readCustomDefinitions(privilegeStream, nsRegistry)) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidator.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidator.java Mon Apr 29 12:41:59 2013
@@ -130,7 +130,7 @@ class PrivilegeValidator extends Default
 
     @Nonnull
     private Tree getPrivilegesTree(Root root) throws CommitFailedException {
-        Tree privilegesTree = root.getTree(PRIVILEGES_PATH);
+        Tree privilegesTree = root.getTreeOrNull(PRIVILEGES_PATH);
         if (privilegesTree == null) {
             throw new CommitFailedException(CONSTRAINT, 44, "Privilege store not initialized.");
         }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java Mon Apr 29 12:41:59 2013
@@ -56,7 +56,7 @@ abstract class AuthorizableBaseProvider 
 
     @CheckForNull
     Tree getByPath(@Nonnull String authorizableOakPath) {
-        Tree tree = root.getTree(authorizableOakPath);
+        Tree tree = root.getTreeOrNull(authorizableOakPath);
         if (UserUtility.isType(tree, AuthorizableType.AUTHORIZABLE)) {
             return tree;
         } else {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java Mon Apr 29 12:41:59 2013
@@ -121,7 +121,7 @@ class MembershipProvider extends Authori
     Iterator<String> getMembers(Tree groupTree, AuthorizableType authorizableType, boolean includeInherited) {
         Iterable memberPaths = Collections.emptySet();
         if (useMemberNode(groupTree)) {
-            Tree membersTree = groupTree.getChild(REP_MEMBERS);
+            Tree membersTree = groupTree.getChildOrNull(REP_MEMBERS);
             if (membersTree != null) {
                 throw new UnsupportedOperationException("not implemented: retrieve members from member-node hierarchy");
             }
@@ -157,7 +157,7 @@ class MembershipProvider extends Authori
             }
         } else {
             if (useMemberNode(groupTree)) {
-                Tree membersTree = groupTree.getChild(REP_MEMBERS);
+                Tree membersTree = groupTree.getChildOrNull(REP_MEMBERS);
                 if (membersTree != null) {
                     // FIXME: fix.. testing for property name in jr2 wasn't correct.
                     // TODO OAK-482: add implementation
@@ -204,7 +204,7 @@ class MembershipProvider extends Authori
 
     boolean removeMember(Tree groupTree, Tree memberTree) {
         if (useMemberNode(groupTree)) {
-            Tree membersTree = groupTree.getChild(REP_MEMBERS);
+            Tree membersTree = groupTree.getChildOrNull(REP_MEMBERS);
             if (membersTree != null) {
                 // TODO OAK-482: add implementation
                 throw new UnsupportedOperationException("not implemented: remove member from member-node hierarchy");

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java Mon Apr 29 12:41:59 2013
@@ -345,7 +345,7 @@ class UserImporter implements ProtectedP
         if (isMemberNode(protectedParent)) {
             Tree groupTree = protectedParent;
             while (isMemberNode(groupTree)) {
-                groupTree = groupTree.getParent();
+                groupTree = groupTree.getParentOrNull();
             }
             Authorizable auth = (groupTree == null) ? null : userManager.getAuthorizable(groupTree);
             if (auth == null) {
@@ -528,7 +528,7 @@ class UserImporter implements ProtectedP
             // handling non-existing members in case of best-effort
             if (!nonExisting.isEmpty()) {
                 log.info("ImportBehavior.BESTEFFORT: Found " + nonExisting.size() + " entries of rep:members pointing to non-existing authorizables. Adding to rep:members.");
-                Tree groupTree = root.getTree(gr.getPath());
+                Tree groupTree = root.getTreeOrNull(gr.getPath());
 
                 MembershipProvider membershipProvider = userManager.getMembershipProvider();
                 for (Membership.Member member : nonExisting) {
@@ -611,7 +611,7 @@ class UserImporter implements ProtectedP
             }
 
             if (!nonExisting.isEmpty()) {
-                Tree userTree = checkNotNull(root.getTree(a.getPath()));
+                Tree userTree = checkNotNull(root.getTreeOrNull(a.getPath()));
                 // copy over all existing impersonators to the nonExisting list
                 PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
                 if (impersonators != null) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java Mon Apr 29 12:41:59 2013
@@ -105,7 +105,7 @@ class UserInitializer implements Workspa
 
         String errorMsg = "Failed to initialize user content.";
         try {
-            NodeUtil rootTree = checkNotNull(new NodeUtil(root.getTree("/")));
+            NodeUtil rootTree = checkNotNull(new NodeUtil(root.getTreeOrNull("/")));
             NodeUtil index = rootTree.getOrAddChild(IndexConstants.INDEX_DEFINITIONS_NAME, JcrConstants.NT_UNSTRUCTURED);
 
             if (!index.hasChild("authorizableId")) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java?rev=1477009&r1=1477008&r2=1477009&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java Mon Apr 29 12:41:59 2013
@@ -145,7 +145,7 @@ import static org.apache.jackrabbit.oak.
  *
  * <h3>By Path</h3>
  * Access by path consists of a simple lookup by path such as exposed by
- * {@link Root#getTree(String)}. The resulting tree is validated to really
+ * {@link Root#getTreeOrNull(String)}. The resulting tree is validated to really
  * represent a user/group tree.
  *
  * <h3>By Principal</h3>
@@ -198,7 +198,7 @@ class UserProvider extends AuthorizableB
     @CheckForNull
     Tree getAuthorizableByPrincipal(Principal principal) {
         if (principal instanceof TreeBasedPrincipal) {
-            return root.getTree(((TreeBasedPrincipal) principal).getOakPath());
+            return root.getTreeOrNull(((TreeBasedPrincipal) principal).getOakPath());
         }
 
         // NOTE: in contrast to JR2 the extra shortcut for ID==principalName
@@ -217,7 +217,7 @@ class UserProvider extends AuthorizableB
             Iterator<? extends ResultRow> rows = result.getRows().iterator();
             if (rows.hasNext()) {
                 String path = rows.next().getPath();
-                return root.getTree(path);
+                return root.getTreeOrNull(path);
             }
         } catch (ParseException ex) {
             log.error("Failed to retrieve authorizable by principal", ex);
@@ -273,9 +273,9 @@ class UserProvider extends AuthorizableB
                                        boolean isGroup, String intermediatePath) throws RepositoryException {
         String authRoot = (isGroup) ? groupPath : userPath;
         NodeUtil folder;
-        Tree authTree = root.getTree(authRoot);
+        Tree authTree = root.getTreeOrNull(authRoot);
         if (authTree == null) {
-            folder = new NodeUtil(root.getTree("/"));
+            folder = new NodeUtil(root.getTreeOrNull("/"));
             for (String name : Text.explode(authRoot, '/', false)) {
                 folder = folder.getOrAddChild(name, NT_REP_AUTHORIZABLE_FOLDER);
             }