You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2012/08/02 11:48:25 UTC

svn commit: r1368403 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr: SessionDelegate.java SessionImpl.java

Author: angela
Date: Thu Aug  2 09:48:25 2012
New Revision: 1368403

URL: http://svn.apache.org/viewvc?rev=1368403&view=rev
Log:
OAK-219 : SessionDelegate#getRoot throws IllegalStateException if the root node is not accessible

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java?rev=1368403&r1=1368402&r2=1368403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java Thu Aug  2 09:48:25 2012
@@ -21,7 +21,6 @@ import java.text.ParseException;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Timer;
-
 import javax.annotation.CheckForNull;
 import javax.annotation.Nonnull;
 import javax.jcr.ItemExistsException;
@@ -165,14 +164,14 @@ public class SessionDelegate {
         }
     }
 
-    @Nonnull
+    @CheckForNull
     public NodeDelegate getRoot() {
         Tree root = getTree("");
         if (root == null) {
-            throw new IllegalStateException("No root node");
+            return null;
+        } else {
+            return new NodeDelegate(this, root);
         }
-
-        return new NodeDelegate(this, root);
     }
 
     @CheckForNull

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java?rev=1368403&r1=1368402&r2=1368403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java Thu Aug  2 09:48:25 2012
@@ -23,6 +23,7 @@ import java.util.Map;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
+import javax.jcr.AccessDeniedException;
 import javax.jcr.Credentials;
 import javax.jcr.Item;
 import javax.jcr.ItemNotFoundException;
@@ -123,8 +124,13 @@ public class SessionImpl extends Abstrac
 
         return dlg.perform(new SessionOperation<NodeImpl>() {
             @Override
-            public NodeImpl perform() {
-                return new NodeImpl(dlg.getRoot());
+            public NodeImpl perform() throws AccessDeniedException {
+                NodeDelegate nd = dlg.getRoot();
+                if (nd == null) {
+                    throw new AccessDeniedException("Root node is not accessible.");
+                } else {
+                    return new NodeImpl(dlg.getRoot());
+                }
             }
         });
     }