jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Draier (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-2480) Property definition not properly initialized
Date Tue, 02 Feb 2010 10:00:19 GMT

    [ 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.

View raw message