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 ju...@apache.org on 2012/07/12 22:46:30 UTC
svn commit: r1360923 - in /jackrabbit/oak/trunk/oak-jcr/src:
main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java
main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
test/java/org/apache/jackrabbit/oak/jcr/CRUDTest.java
Author: jukka
Date: Thu Jul 12 20:46:30 2012
New Revision: 1360923
URL: http://svn.apache.org/viewvc?rev=1360923&view=rev
Log:
OAK-185: Trying to remove a missing property throws PathNotFoundException
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CRUDTest.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java?rev=1360923&r1=1360922&r2=1360923&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java Thu Jul 12 20:46:30 2012
@@ -291,6 +291,10 @@ public class NodeDelegate extends ItemDe
return new PropertyDelegate(sessionDelegate, getTree(), propertyState);
}
+ public void removeProperty(String name) throws InvalidItemStateException {
+ getTree().removeProperty(name);
+ }
+
/**
* Set a multi valued property
* @param name oak name
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1360923&r1=1360922&r2=1360923&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Thu Jul 12 20:46:30 2012
@@ -264,15 +264,16 @@ public class NodeImpl extends ItemImpl<N
throws RepositoryException {
checkStatus();
- int targetType = getTargetType(value, type);
- Value targetValue = ValueHelper.convert(value, targetType, getValueFactory());
+ String oakName = sessionDelegate.getOakPathOrThrow(jcrName);
if (value == null) {
- Property p = getProperty(jcrName);
- p.remove();
- return p;
+ dlg.removeProperty(oakName);
+ return null;
} else {
- String oakName = sessionDelegate.getOakPathOrThrow(jcrName);
- CoreValue oakValue = ValueConverter.toCoreValue(targetValue, sessionDelegate);
+ int targetType = getTargetType(value, type);
+ Value targetValue =
+ ValueHelper.convert(value, targetType, getValueFactory());
+ CoreValue oakValue =
+ ValueConverter.toCoreValue(targetValue, sessionDelegate);
return new PropertyImpl(dlg.setProperty(oakName, oakValue));
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CRUDTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CRUDTest.java?rev=1360923&r1=1360922&r2=1360923&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CRUDTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CRUDTest.java Thu Jul 12 20:46:30 2012
@@ -57,4 +57,11 @@ public class CRUDTest extends AbstractRe
}
}
+ @Test
+ public void testRemoveMissingProperty() throws RepositoryException {
+ Session session = getSession();
+ Node root = session.getRootNode();
+ root.setProperty("missing", (String) null);
+ }
+
}