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 2012/06/06 14:51:02 UTC
svn commit: r1346863 - in /jackrabbit/oak/trunk: oak-it/jcr/pom.xml
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
Author: reschke
Date: Wed Jun 6 12:51:02 2012
New Revision: 1346863
URL: http://svn.apache.org/viewvc?rev=1346863&view=rev
Log:
enhance exception handling for the case where it is tried to add a node to a property; update test expectations
Modified:
jackrabbit/oak/trunk/oak-it/jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1346863&r1=1346862&r2=1346863&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Wed Jun 6 12:51:02 2012
@@ -44,7 +44,6 @@
<property>
<name>known.issues</name>
<value>
-org.apache.jackrabbit.test.api.AddNodeTest#testConstraintViolation
org.apache.jackrabbit.test.api.SessionTest#testMoveConstraintViolationExceptionSrc
org.apache.jackrabbit.test.api.SessionTest#testMoveConstraintViolationExceptionDest
org.apache.jackrabbit.test.api.SessionTest#testSaveConstraintViolationException
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=1346863&r1=1346862&r2=1346863&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 Wed Jun 6 12:51:02 2012
@@ -181,6 +181,16 @@ public class NodeImpl extends ItemImpl i
NodeDelegate parent = dlg.getChild(parentPath);
if (parent == null) {
+ // is it a property?
+ String grandParentPath = PathUtils.getParentPath(parentPath);
+ NodeDelegate grandParent = dlg.getChild(grandParentPath);
+ if (grandParent != null) {
+ String propname = PathUtils.getName(parentPath);
+ if (grandParent.getProperty(propname) != null) {
+ throw new ConstraintViolationException("Can't add new node to property.");
+ }
+ }
+
throw new PathNotFoundException(relPath);
}