Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.5.2
-
None
-
None
Description
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.