[
https://issues.apache.org/jira/browse/JCR-3452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13507249#comment-13507249
]
Stefan Guggisberg commented on JCR-3452:
----------------------------------------
bq. Yes, that is correct. BUT, adding additional child node types is making the
restriction LESS restrictive and should be allowed.
wrong. the required primary node types of a child node definition are logically
ANDed during validation, i.e. adding req. types makes the constraint stronger,
removing OTOH weaker. see [0].
bq. And setting the child node to nt:base makes the restriction LEAST
restrictive.
agreed. that's an edge case that's currently not handled. since the abstract
nt:base node type is the root of the node type hierarchy
it is implicitly included in every req. types constraint. explicitly adding or
removing nt:base has no effect on the constraint.
[0]
http://www.day.com/specs/jcr/2.0/3_Repository_Model.html#3.7.4.1%20Required%20Primary%20Node%20Types
> Modified property and child node definition are rejected
> --------------------------------------------------------
>
> Key: JCR-3452
> URL: https://issues.apache.org/jira/browse/JCR-3452
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Affects Versions: 2.5.2
> Reporter: Tom Quellenberg
> Priority: Minor
> Attachments: patch.txt
>
>
> NodeTypeDefDiff identifies modified properties and child nodes by
> QNodeDefinitionId and QPropertyDefinitionId. Both classes have their own
> equals and hashCode methods. Thus, properties and child nodes with trivial
> changes (changed required types or isMultiple) are always considered as added
> and removed ( = major change) and never as changed.
> Additional, the check for required child node types seems wrong to me: adding
> additional (alternative) constraints are considered as major change. I think,
> the opposite is true: removing node types from the list of required types is
> a major change (there may exist child nodes of the removed type), adding
> alternative constraints is a trivial change.
> There is one more change to the required child node types, which can easily
> be checked: setting the required type to nt:base. This should always be
> possible.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira