Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java (Revision 1857353) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java (Arbeitskopie) @@ -57,6 +57,7 @@ import javax.jcr.lock.Lock; import javax.jcr.lock.LockManager; import javax.jcr.nodetype.ConstraintViolationException; +import javax.jcr.nodetype.NoSuchNodeTypeException; import javax.jcr.nodetype.NodeDefinition; import javax.jcr.nodetype.NodeType; import javax.jcr.nodetype.NodeTypeManager; @@ -93,6 +94,7 @@ import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.spi.nodetype.EffectiveNodeType; import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; +import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; import org.apache.jackrabbit.oak.spi.security.authorization.permission.Permissions; import org.apache.jackrabbit.oak.plugins.tree.TreeUtil; import org.apache.jackrabbit.value.ValueHelper; @@ -1363,6 +1365,17 @@ PropertyState state = PropertyStates.createProperty( JCR_PRIMARYTYPE, getOakName(nodeTypeName), NAME); dlg.setProperty(state, true, true); + + Tree tree = dlg.getTree(); + Tree typeRoot = sessionDelegate.getRoot().getTree(NodeTypeConstants.NODE_TYPES_PATH); + Tree type = typeRoot.getChild(nodeTypeName); + if (!type.exists()) { + throw new NoSuchNodeTypeException( + "Node type " + nodeTypeName + " does not exist"); + } + String userID = sessionDelegate.getAuthInfo().getUserID(); + TreeUtil.autoCreateItems(tree, type, typeRoot, userID); + dlg.setOrderableChildren(nt.hasOrderableChildNodes()); }