Author: tripod
Date: Tue Nov 26 12:58:15 2013
New Revision: 1545641
URL: http://svn.apache.org/r1545641
Log:
OAK-1225 Session.nodeExists("/foo/bar[2]") must not throw PathNotFoundException
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java?rev=1545641&r1=1545640&r2=1545641&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
Tue Nov 26 12:58:15 2013
@@ -161,7 +161,11 @@ public class SessionImpl implements Jack
return perform(new ReadOperation<Node>() {
@Override
public Node perform() throws RepositoryException {
- return
NodeImpl.createNodeOrNull(sd.getNode(getOakPathOrThrow(absPath)),
sessionContext);
+ try {
+ return
NodeImpl.createNodeOrNull(sd.getNode(getOakPathOrThrow(absPath)),
sessionContext);
+ } catch (PathNotFoundException e) {
+ return null;
+ }
}
});
}
@@ -179,7 +183,12 @@ public class SessionImpl implements Jack
if (absPath.equals("/")) {
return null;
} else {
- final String oakPath = getOakPathOrThrow(absPath);
+ final String oakPath;
+ try {
+ oakPath = getOakPathOrThrow(absPath);
+ } catch (PathNotFoundException e) {
+ return null;
+ }
return perform(new ReadOperation<Property>() {
@Override
public Property perform() throws RepositoryException {
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1545641&r1=1545640&r2=1545641&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Tue Nov 26 12:58:15 2013
@@ -299,6 +299,17 @@ public class RepositoryTest extends Abst
// expected.
}
+ try {
+ getProperty("/foo[1]/bar[2]/jcr:primaryType");
+ fail("retrieving wrong SNS index should throw
PathNotFoundException");
+ } catch (PathNotFoundException e) {
+ // expected.
+ }
+
+ assertTrue(getAdminSession().nodeExists("/foo[1]/bar[1]"));
+
assertTrue(getAdminSession().propertyExists("/foo[1]/bar[1]/jcr:primaryType"));
+ assertFalse(getAdminSession().nodeExists("/foo[1]/bar[2]"));
+
assertFalse(getAdminSession().propertyExists("/foo[1]/bar[2]/jcr:primaryType"));
}
@Test(expected = RepositoryException.class)