Uploaded image for project: 'Hippo CMS'
  1. Hippo CMS
  2. CMS-15069

Component referencenames broken for abstractpages (replaced by autocreated)

    XMLWordPrintable

Details

    • 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

          Activity

            People

              Unassigned Unassigned
              jhoffman Jeroen Hoffman
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: