Details
-
Bug
-
Status: Closed
-
Normal
-
Resolution: Fixed
-
14.4.0
-
None
-
Flagged
-
Quasar
-
Team Quasar 286 Sprint
Description
In CMS-14143 (14.4.0), there was a change in org.hippoecm.hst.platform.configuration.components.HstComponentsConfigurationService#autocreateReferenceNames where now first usedReferenceNames is checked and when it finds it a second time it gets replaced by an autocreated one.
This breaks the case where
- an hst:abstractpage has an hst:referencename property
- concrete hst:pages have a hst:referencecomponent property referencing the first hst:abstractpage
Result
The problem is that when retrieving the pages with its resource URL (and maybe also in other usages), the set referencename is replaced by an autocreated one
This error is logged:
log.error("componentConfiguration '{}' contains invalid explicit reference '{}' since already in use. " + "Autocreating a new one now.", componentConfiguration.getCanonicalStoredLocation(), referenceName);
Reproduction
See myproject14.7.6-CMS-15069.zip
Visit http://localhost:8080/site/content, it is broken, has a named reference 'myreference' to the 'base' abstract page.
Investigation and Solution
CMS-14143 contains a wrong functional change. before CMS-14143, it was supported that for pages the 'root component' instances, the 'referencename' could be the same, so eg for both the pages /home and /contact backed by a different hst root component, the 'referencename' of the root component was allowed to be for example base. For child components of the root component, it is not allowed to have duplicates as it is not allowed to have for one single 'page instance' two different components having the same namespace. CMS-14143, unintentionally, added this constraint to root
components as well. The fix is to revert this unintentional functional change to again allow duplicate referencenames for root component instances
Attachments
Issue Links
- is a result of
-
CMS-14143 Support XPage Layout inheritance from common configuration
- Closed