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 "Jorge Flórez (Jira)" <ji...@apache.org> on 2020/03/18 16:19:00 UTC

[jira] [Updated] (OAK-8961) Insertion of property definitions with the same name

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

Jorge Flórez updated OAK-8961:
------------------------------
    Description: 
Tested on version 1.12.0.

Invoking the following code multiple times (it inserts a new property into an existing node type)

NodeTypeManager nodeTypeManager =
 session.getWorkspace().getNodeTypeManager();

NodeType repositoryType = nodeTypeManager.getNodeType("testType");
 NodeTypeTemplate repositoryTypeTemplate =
 nodeTypeManager.createNodeTypeTemplate(repositoryType);
 PropertyDefinitionTemplate testProperty =
 nodeTypeManager.createPropertyDefinitionTemplate();
 testProperty.setName("testProperty");
 testProperty.setRequiredType(PropertyType.STRING);
 testProperty.setMandatory(false);
 testProperty.setMultiple(false);
 testProperty.setDefaultValues(new Value[0]);
 testProperty.setValueConstraints(new String[0]);
 repositoryTypeTemplate.getPropertyDefinitionTemplates().add(testProperty);

nodeTypeManager.registerNodeType(repositoryTypeTemplate, true);
 session.save();

results in the node type having multiple jcr:propertyDefinition nodes with the same name in the node type. For example:


!multiple nodes.png!

  was:
Tested on version 1.12.0.

Invoking the following code multiple times (it inserts a new property into an existing node type) 

NodeTypeManager nodeTypeManager =
 session.getWorkspace().getNodeTypeManager();
 
 NodeType repositoryType = nodeTypeManager.getNodeType("testType");
 NodeTypeTemplate repositoryTypeTemplate =
 nodeTypeManager.createNodeTypeTemplate(repositoryType);
 PropertyDefinitionTemplate testProperty =
 nodeTypeManager.createPropertyDefinitionTemplate();
 testProperty.setName("testProperty");
 testProperty.setRequiredType(PropertyType.STRING);
 testProperty.setMandatory(false);
 testProperty.setMultiple(false);
 testProperty.setDefaultValues(new Value[0]);
 testProperty.setValueConstraints(new String[0]);
 repositoryTypeTemplate.getPropertyDefinitionTemplates().add(testProperty);
 
 nodeTypeManager.registerNodeType(repositoryTypeTemplate, true);
 session.save();

results in the node type having multiple jcr:propertyDefinition nodes with the same name in the node type. For example:

{
     "node": "testType",
     "path": "/jcr:system/jcr:nodeTypes/testType",
     "children": [
         {
             "node": "jcr:propertyDefinition",
             "path": "/jcr:system/jcr:nodeTypes/testType/jcr:propertyDefinition",
             "properties": [
                 "jcr:name = testProperty"
             ]
         },
         {
             "node": "jcr:propertyDefinition[2]",
             "path": "/jcr:system/jcr:nodeTypes/testType/jcr:propertyDefinition[2]",
            "properties": [
                 "jcr:name = testProperty"
             ]
         },
         {
             "node": "jcr:propertyDefinition[3]",
             "path": "/jcr:system/jcr:nodeTypes/testType/jcr:propertyDefinition[3]",
            "properties": [
                 "jcr:name = testProperty"
             ]
         }
    ]
}

 


> Insertion of property definitions with the same name
> ----------------------------------------------------
>
>                 Key: OAK-8961
>                 URL: https://issues.apache.org/jira/browse/OAK-8961
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>    Affects Versions: 1.12.0
>            Reporter: Jorge Flórez
>            Priority: Major
>         Attachments: multiple nodes.png
>
>
> Tested on version 1.12.0.
> Invoking the following code multiple times (it inserts a new property into an existing node type)
> NodeTypeManager nodeTypeManager =
>  session.getWorkspace().getNodeTypeManager();
> NodeType repositoryType = nodeTypeManager.getNodeType("testType");
>  NodeTypeTemplate repositoryTypeTemplate =
>  nodeTypeManager.createNodeTypeTemplate(repositoryType);
>  PropertyDefinitionTemplate testProperty =
>  nodeTypeManager.createPropertyDefinitionTemplate();
>  testProperty.setName("testProperty");
>  testProperty.setRequiredType(PropertyType.STRING);
>  testProperty.setMandatory(false);
>  testProperty.setMultiple(false);
>  testProperty.setDefaultValues(new Value[0]);
>  testProperty.setValueConstraints(new String[0]);
>  repositoryTypeTemplate.getPropertyDefinitionTemplates().add(testProperty);
> nodeTypeManager.registerNodeType(repositoryTypeTemplate, true);
>  session.save();
> results in the node type having multiple jcr:propertyDefinition nodes with the same name in the node type. For example:
> !multiple nodes.png!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)