Index: oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java (revision 1879337) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java (working copy) @@ -168,7 +168,12 @@ */ private static void registerBuiltIn(final Root root) { try { - InputStream stream = InitialContent.class.getResourceAsStream("builtin_nodetypes.cnd"); + String builtinNodetypes = "builtin_nodetypes.cnd"; + String builtinNodeTypesEnv = System.getenv("OAK_BUILTIN_NODETYPES_NAME"); + if (builtinNodeTypesEnv != null && !builtinNodeTypesEnv.isEmpty()) { + builtinNodetypes = builtinNodeTypesEnv; + } + InputStream stream = InitialContent.class.getResourceAsStream(builtinNodetypes); try { NodeTypeRegistry.register(root, stream, "built-in node types"); } finally { Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java (revision 1879337) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java (working copy) @@ -37,6 +37,7 @@ import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE; import static org.apache.jackrabbit.JcrConstants.JCR_UUID; import static org.apache.jackrabbit.JcrConstants.JCR_VERSIONHISTORY; +import static org.apache.jackrabbit.JcrConstants.MIX_REFERENCEABLE; import static org.apache.jackrabbit.JcrConstants.MIX_VERSIONABLE; import static org.apache.jackrabbit.JcrConstants.NT_FROZENNODE; import static org.apache.jackrabbit.JcrConstants.NT_VERSIONEDCHILD; @@ -50,6 +51,7 @@ import javax.jcr.RepositoryException; import javax.jcr.Value; +import javax.jcr.nodetype.NodeType; import javax.jcr.nodetype.PropertyDefinition; import javax.jcr.version.OnParentVersionAction; @@ -175,7 +177,17 @@ NodeBuilder node, String nodeId) { // initialize jcr:frozenNode - frozen.setProperty(JCR_UUID, UUIDUtils.generateUUID(), Type.STRING); + try { + NodeType[] superTypes = ntMgr.getNodeType(NT_FROZENNODE).getSupertypes(); + for (NodeType superType : superTypes) { + if (superType.isNodeType(MIX_REFERENCEABLE)) { + // OAK-9134: add uuid in older repositories with mix:referenceable in nt:frozenNode + frozen.setProperty(JCR_UUID, UUIDUtils.generateUUID(), Type.STRING); + } + } + } catch (RepositoryException e) { + log.warn("Unable to access node type " + NT_FROZENNODE, e); + } frozen.setProperty(JCR_PRIMARYTYPE, NT_FROZENNODE, Type.NAME); List mixinTypes; if (node.hasProperty(JCR_MIXINTYPES)) {