Uploaded image for project: 'Magnolia'
  1. Magnolia
  2. MAGNOLIA-3578

ExtendingNodeWrapper (extends) can overflow if self-refering

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • 5.0
    • None
    • core
    • None

    Description

      ExtendingContentWrapper does not check if it's extending itself, and as such, one can get a StackOverflowError if one accidentally configures the following:
      foo/bar/extends = ../bar

      Exception in thread "Thread-19" java.lang.StackOverflowError
      	at org.apache.commons.collections.map.AbstractReferenceMap.purgeBeforeRead(AbstractReferenceMap.java:337)
      <...>
      	at info.magnolia.cms.core.DefaultContent.<init>(DefaultContent.java:120)
      	at info.magnolia.cms.core.DefaultContent.getContent(DefaultContent.java:188)
      	at info.magnolia.cms.core.AbstractNodeData.getReferencedContent(AbstractNodeData.java:137)
      	at info.magnolia.cms.core.AbstractNodeData.getReferencedContent(AbstractNodeData.java:104)
      	at info.magnolia.cms.util.ExtendingContentWrapper.<init>(ExtendingContentWrapper.java:96)
      	at info.magnolia.cms.util.ExtendingContentWrapper.wrapIfNeeded(ExtendingContentWrapper.java:131)
      	at info.magnolia.cms.util.ExtendingContentWrapper.<init>(ExtendingContentWrapper.java:96)
      	at info.magnolia.cms.util.ExtendingContentWrapper.wrapIfNeeded(ExtendingContentWrapper.java:131)
      	at info.magnolia.cms.util.ExtendingContentWrapper.<init>(ExtendingContentWrapper.java:96)
      	at info.magnolia.cms.util.ExtendingContentWrapper.wrapIfNeeded(ExtendingContentWrapper.java:131)
      	at info.magnolia.cms.util.ExtendingContentWrapper.<init>(ExtendingContentWrapper.java:96)
      	at info.magnolia.cms.util.ExtendingContentWrapper.wrapIfNeeded(ExtendingContentWrapper.java:131)
      <...>
      

      It should be doable to fail early in such misconfiguration cases, with a more explicit exception message.

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              jsimak Jaroslav Simak
              gjoseph Magnolia International
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Checklists

                  Bug DoR
                  Task DoD