Uploaded image for project: 'Magnolia REST Framework'
  1. Magnolia REST Framework
  2. MGNLREST-187

StackOverflowError when reading nodes with reference to itself & parent

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Neutral Neutral
    • None
    • None
    • None
    • None

      • Set up related content (make sure correct order) in stories as below image:

      • Configure one endpoint:
      class: info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpointDefinition
      nodeTypes:
        - mgnl:composition
      includeSystemProperties: true
      bypassWorkspaceAcls: false
      limit: 50
      workspace: stories
      references:
        - name: tours
          propertyName: tours
          referenceResolver:
            class: info.magnolia.rest.reference.jcr.JcrReferenceResolverDefinition
            targetWorkspace: tours
        - name: stories
          propertyName: stories
          referenceResolver:
            class: info.magnolia.rest.reference.jcr.JcrReferenceResolverDefinition
            targetWorkspace: stories

       

      •  And get that story

       

      Error log:

      java.lang.RuntimeException: java.lang.StackOverflowErrorjava.lang.RuntimeException: java.lang.StackOverflowError info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:234) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:89) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:77) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.AddHeadersFilter.doFilter(AddHeadersFilter.java:57) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.multisite.filters.CrossSiteSecurityFilter.doFilter(CrossSiteSecurityFilter.java:104) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:84) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:119) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.multisite.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:120) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:73) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:64) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.UnicodeNormalizationFilter.doFilter(UnicodeNormalizationFilter.java:89) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:111) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.personalization.preview.filter.PreviewFilter.doFilter(PreviewFilter.java:92) info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:155) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107) info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67) info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:110) info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:96)</pre>        <p>            <b>root cause</b>        </p>        <pre>java.lang.StackOverflowError java.io.UnixFileSystem.getBooleanAttributes0(Native Method) java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242) java.io.File.exists(File.java:819) sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1245) sun.misc.URLClassPath$FileLoader.findResource(URLClassPath.java:1212) sun.misc.URLClassPath$1.next(URLClassPath.java:240) sun.misc.URLClassPath$1.hasMoreElements(URLClassPath.java:250) java.net.URLClassLoader$3$1.run(URLClassLoader.java:601) java.net.URLClassLoader$3$1.run(URLClassLoader.java:599) java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader$3.next(URLClassLoader.java:598) java.net.URLClassLoader$3.hasMoreElements(URLClassLoader.java:623) sun.misc.CompoundEnumeration.next(CompoundEnumeration.java:45) sun.misc.CompoundEnumeration.hasMoreElements(CompoundEnumeration.java:54) sun.misc.CompoundEnumeration.next(CompoundEnumeration.java:45) sun.misc.CompoundEnumeration.hasMoreElements(CompoundEnumeration.java:54) java.util.ServiceLoader$LazyIterator.hasNextService(ServiceLoader.java:354) java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:393) java.util.ServiceLoader$1.hasNext(ServiceLoader.java:474) javax.json.spi.JsonProvider.provider(JsonProvider.java:89) javax.json.Json.createArrayBuilder(Json.java:257) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:150) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254) info.magnolia.rest.delivery.jcr.NodeWriter.writeProperty(NodeWriter.java:198) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:144) info.magnolia.rest.delivery.jcr.NodeWriter.writeNode(NodeWriter.java:153) info.magnolia.rest.delivery.jcr.NodeWriter.writeResolvedReference(NodeWriter.java:254)

        Acceptance criteria

              Unassigned Unassigned
              oanh.thai Oanh Thai Hoang
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:

                  Task DoD