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 re...@apache.org on 2019/12/02 20:17:42 UTC
svn commit: r1870731 - in /jackrabbit/oak/branches/1.6: ./ oak-jcr/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Author: reschke
Date: Mon Dec 2 20:17:41 2019
New Revision: 1870731
URL: http://svn.apache.org/viewvc?rev=1870731&view=rev
Log:
OAK-8583: getNodeByIdentifier may fail with RuntimeException (merged r1866039 and r1866041 into 1.6)
Modified:
jackrabbit/oak/branches/1.6/ (props changed)
jackrabbit/oak/branches/1.6/oak-jcr/ (props changed)
jackrabbit/oak/branches/1.6/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
jackrabbit/oak/branches/1.6/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Propchange: jackrabbit/oak/branches/1.6/
------------------------------------------------------------------------------
Merged /jackrabbit/oak/trunk:r1866039,1866041
Propchange: jackrabbit/oak/branches/1.6/oak-jcr/
------------------------------------------------------------------------------
Merged /jackrabbit/oak/trunk/oak-jcr:r1866039,1866041
Modified: jackrabbit/oak/branches/1.6/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java?rev=1870731&r1=1870730&r2=1870731&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java (original)
+++ jackrabbit/oak/branches/1.6/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java Mon Dec 2 20:17:41 2019
@@ -319,11 +319,15 @@ public class SessionImpl implements Jack
@Nonnull
@Override
public Node perform() throws RepositoryException {
- NodeDelegate nd = sd.getNodeByIdentifier(id);
- if (nd == null) {
- throw new ItemNotFoundException("Node with id " + id + " does not exist.");
+ try {
+ NodeDelegate nd = sd.getNodeByIdentifier(id);
+ if (nd == null) {
+ throw new ItemNotFoundException("Node with id " + id + " does not exist.");
+ }
+ return NodeImpl.createNode(nd, sessionContext);
+ } catch (IllegalArgumentException ex) {
+ throw new RepositoryException(ex);
}
- return NodeImpl.createNode(nd, sessionContext);
}
});
}
Modified: jackrabbit/oak/branches/1.6/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1870731&r1=1870730&r2=1870731&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java (original)
+++ jackrabbit/oak/branches/1.6/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java Mon Dec 2 20:17:41 2019
@@ -50,6 +50,7 @@ import javax.jcr.GuestCredentials;
import javax.jcr.InvalidItemStateException;
import javax.jcr.Item;
import javax.jcr.ItemExistsException;
+import javax.jcr.ItemNotFoundException;
import javax.jcr.NamespaceException;
import javax.jcr.NamespaceRegistry;
import javax.jcr.NoSuchWorkspaceException;
@@ -376,6 +377,26 @@ public class RepositoryTest extends Abst
}
@Test
+ public void getNodeByIncorrectIdentifier() throws RepositoryException {
+ Node node = getNode("/foo");
+ String id = node.getIdentifier() + "foofoofoo";
+ try {
+ getAdminSession().getNodeByIdentifier(id);
+ fail("should not get here");
+ } catch (ItemNotFoundException expected) {
+ }
+ }
+
+ @Test
+ public void getNodeByEmptyIdentifier() throws RepositoryException {
+ try {
+ getAdminSession().getNodeByIdentifier("");
+ fail("should not get here");
+ } catch (RepositoryException expected) {
+ }
+ }
+
+ @Test
public void getNodeByUUID() throws RepositoryException {
Node node = getNode("/foo").addNode("boo");
node.addMixin(JcrConstants.MIX_REFERENCEABLE);