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 md...@apache.org on 2013/09/12 13:26:44 UTC
svn commit: r1522532 -
/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CompatibilityIssuesTest.java
Author: mduerig
Date: Thu Sep 12 11:26:44 2013
New Revision: 1522532
URL: http://svn.apache.org/r1522532
Log:
OAK-1013: Node.addNode(name) different behavior from JR if NodeType resolves to an abstract
test case
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CompatibilityIssuesTest.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CompatibilityIssuesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CompatibilityIssuesTest.java?rev=1522532&r1=1522531&r2=1522532&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CompatibilityIssuesTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/CompatibilityIssuesTest.java Thu Sep 12 11:26:44 2013
@@ -36,6 +36,10 @@ import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NodeDefinition;
+import javax.jcr.nodetype.NodeDefinitionTemplate;
+import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.nodetype.NodeTypeTemplate;
import javax.jcr.observation.Event;
import javax.jcr.observation.EventIterator;
import javax.jcr.observation.EventListener;
@@ -251,4 +255,27 @@ public class CompatibilityIssuesTest ext
}
}
+ @Test(expected = ConstraintViolationException.class)
+ public void addNodeTest() throws RepositoryException {
+ Session session = getAdminSession();
+
+ // node type with default child-node type of to nt:base
+ String ntName = "test";
+ NodeTypeManager ntm = session.getWorkspace().getNodeTypeManager();
+ NodeTypeTemplate ntt = ntm.createNodeTypeTemplate();
+ ntt.setName(ntName);
+ NodeDefinitionTemplate child = ntm.createNodeDefinitionTemplate();
+ child.setName("*");
+ child.setDefaultPrimaryTypeName("nt:base");
+ child.setRequiredPrimaryTypeNames(new String[] {"nt:base"});
+ List<NodeDefinition> children = ntt.getNodeDefinitionTemplates();
+ children.add(child);
+ ntm.registerNodeType(ntt, true);
+
+ // try to create a node with the default nt:base
+ Node node = session.getRootNode().addNode("defaultNtBase", ntName);
+ node.addNode("throw"); // Throws ConstraintViolationException on Oak, works on Jackrabbit 2
+ session.save();
+ }
+
}