Details
-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
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