You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Ayhan APAYDIN (JIRA)" <ji...@apache.org> on 2015/08/25 17:51:45 UTC

[jira] [Updated] (OAK-3297) Registering a NodeType based on an existing NodeType with residual children template fails

     [ https://issues.apache.org/jira/browse/OAK-3297?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ayhan APAYDIN updated OAK-3297:
-------------------------------
    Description: 
Creating/updating a NodeType based on an existing NodeType using NodeTypeTemplate with childDefinitionTemplates fails because it seems boolean residual value in ItemDefinitionTemplate class cannot be copied to new template.


Please see sample code snippet below..

NodeTypeTemplate nodeTypeTemp = nodeTypeManager.createNodeTypeTemplate();
        nodeTypeTemp.setName("my_custom_node_type");
        NodeDefinitionTemplate nodeDefTemp = nodeTypeManager.createNodeDefinitionTemplate();
        nodeDefTemp.setName("*");
        nodeDefTemp.setRequiredPrimaryTypeNames(new String[]{"nt:base"});
        nodeDefTemp.setDefaultPrimaryTypeName("nt:unstructured");
        nodeTypeTemp.getNodeDefinitionTemplates().add(nodeDefTemp);

	((NodeDefinitionTemplate)nodeTypeTemp.getNodeDefinitionTemplates().get(0)).getName(); //returns "*"

        nodeTypeManager.registerNodeType(nodeTypeTemp, true);

	NodeTypeTemplate templateAfterRegistering = nodeTypeManager.createNodeTypeTemplate(nodeTypeManager.getNodeType("my_custom_node_type"));

        ((NodeDefinitionTemplate)templateAfterRegistering.getNodeDefinitionTemplates().get(0)).getName(); //returns null

 nodeTypeManager.registerNodeType(templateAfterRegistering, true); //fails

  was:
Creating a NodeType based on an existing NodeType using NodeTypeTemplate with childDefinitionTemplates fails because it seems boolean residual value in ItemDefinitionTemplate class cannot be copied to new template.


Please see sample code snippet below..

NodeTypeTemplate nodeTypeTemp = nodeTypeManager.createNodeTypeTemplate();
        nodeTypeTemp.setName("my_custom_node_type");
        NodeDefinitionTemplate nodeDefTemp = nodeTypeManager.createNodeDefinitionTemplate();
        nodeDefTemp.setName("*");
        nodeDefTemp.setRequiredPrimaryTypeNames(new String[]{"nt:base"});
        nodeDefTemp.setDefaultPrimaryTypeName("nt:unstructured");
        nodeTypeTemp.getNodeDefinitionTemplates().add(nodeDefTemp);

	((NodeDefinitionTemplate)nodeTypeTemp.getNodeDefinitionTemplates().get(0)).getName(); //returns "*"

        nodeTypeManager.registerNodeType(nodeTypeTemp, true);

	NodeTypeTemplate templateAfterRegistering = nodeTypeManager.createNodeTypeTemplate(nodeTypeManager.getNodeType("my_custom_node_type"));

        ((NodeDefinitionTemplate)templateAfterRegistering.getNodeDefinitionTemplates().get(0)).getName(); //returns null

 nodeTypeManager.registerNodeType(templateAfterRegistering, true); //fails


> Registering a NodeType based on an existing NodeType with residual children template fails
> ------------------------------------------------------------------------------------------
>
>                 Key: OAK-3297
>                 URL: https://issues.apache.org/jira/browse/OAK-3297
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.2.2, 1.3.4
>            Reporter: Ayhan APAYDIN
>
> Creating/updating a NodeType based on an existing NodeType using NodeTypeTemplate with childDefinitionTemplates fails because it seems boolean residual value in ItemDefinitionTemplate class cannot be copied to new template.
> Please see sample code snippet below..
> NodeTypeTemplate nodeTypeTemp = nodeTypeManager.createNodeTypeTemplate();
>         nodeTypeTemp.setName("my_custom_node_type");
>         NodeDefinitionTemplate nodeDefTemp = nodeTypeManager.createNodeDefinitionTemplate();
>         nodeDefTemp.setName("*");
>         nodeDefTemp.setRequiredPrimaryTypeNames(new String[]{"nt:base"});
>         nodeDefTemp.setDefaultPrimaryTypeName("nt:unstructured");
>         nodeTypeTemp.getNodeDefinitionTemplates().add(nodeDefTemp);
> 	((NodeDefinitionTemplate)nodeTypeTemp.getNodeDefinitionTemplates().get(0)).getName(); //returns "*"
>         nodeTypeManager.registerNodeType(nodeTypeTemp, true);
> 	NodeTypeTemplate templateAfterRegistering = nodeTypeManager.createNodeTypeTemplate(nodeTypeManager.getNodeType("my_custom_node_type"));
>         ((NodeDefinitionTemplate)templateAfterRegistering.getNodeDefinitionTemplates().get(0)).getName(); //returns null
>  nodeTypeManager.registerNodeType(templateAfterRegistering, true); //fails



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)