[ 
https://issues.apache.org/jira/browse/JCR-2480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12828573#action_12828573
 ] 

Thomas Draier commented on JCR-2480:
------------------------------------

Hi Marcel,

I'm not using the TemplateBuilderFactory here (which is mainly used by the 
CndImporter) - i directly register my node types using the 
registerNodeTypes(NodeTypeDefinition[] ntds, boolean allowUpdate) method . I 
currently use an empty array in the default values, which is converted to null 
afterwards when re-reading the definition from the database. If I use a null 
value instead, it is then stored as an empty array  - the 
QNodeTypeDefinitionImpl.createQPropertyDefinitions() method make this 
conversion :

            QValue[] defVls = propDef.getDefaultValues() == null
                    ? QValue.EMPTY_ARRAY
                    : ValueFormat.getQValues(propDef.getDefaultValues(), 
resolver, qValueFactory);

So in all cases, a change in the definition is detected .. the main question 
is, what is best to use here for the default values, when no values are set .. 
? null or empty array .. ?


> Property definition not properly initialized
> --------------------------------------------
>
>                 Key: JCR-2480
>                 URL: https://issues.apache.org/jira/browse/JCR-2480
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, jackrabbit-spi-commons
>    Affects Versions: 2.0-beta6
>            Reporter: Thomas Draier
>            Priority: Minor
>
> Hi,
> When reading property definitions from the repository, the "defaultValues" is 
> not properly initialized by the NodeTypeReader , if no default values has 
> been set . The defaultValues keeps a null value instead of an empty array. 
> This causes problems when calling NodeTypeManager.regiterNodeTypes() - the 
> property definitions are always seen as modified even they don't . A trivial 
> modification is detected and definitions is rewritten everytime. Passing null 
> as default values for the new definitions does not work, as it's replaced by 
> an empty array.
> Modifying the initialization of the QPropertyDefinitionBuilder.defaultValues 
> with an empty list , as it's done for valueConstraints, fixes the issues
> regards

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to