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

Freemarker: content?ancestors results in exception

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • None
    • 4.3.1
    • freemarker
    • Magnolia 4.3.1 deployed on RHEL/Intel. Running the CE tomcat-bundle with STK 1.3 installed.

      Trying to use the node-built-in "ancestors" in a freemarker template results in the following exception.

      Sample code to produce the error:
      list content?ancestors as parents
      bla bla
      /#list

      Exception stack trace:

      FreeMarker template error!

      Can't get parent of I18nContentWrapper for website:/[rep:root]:root node doesn't have a parent
      The problematic instruction:
      ----------
      ==> list content?ancestors as pars [on line 5, column 1 in biolebensmittel/general/pfadLeiste]
      in include "/biolebensmittel/general/pfadLeiste" [on line 42, column 1 in biolebensmittel/Artikelkategorie]
      ----------

      Java backtrace for programmers:
      ----------
      freemarker.template.TemplateModelException: Can't get parent of I18nContentWrapper for website:/[rep:root]:root node doesn't have a parent
      at info.magnolia.freemarker.models.ContentModel.getParentNode(ContentModel.java:146)
      at freemarker.core.NodeBuiltins$ancestorsBI.calculateResult(NodeBuiltins.java:85)
      at freemarker.core.NodeBuiltins$NodeBuiltIn._getAsTemplateModel(NodeBuiltins.java:73)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
      at freemarker.core.Environment.visit(Environment.java:210)
      at freemarker.core.MixedContent.accept(MixedContent.java:92)
      at freemarker.core.Environment.visit(Environment.java:210)
      at freemarker.core.Environment.include(Environment.java:1483)
      at freemarker.core.Include.accept(Include.java:169)
      at freemarker.core.Environment.visit(Environment.java:210)
      at freemarker.core.MixedContent.accept(MixedContent.java:92)
      at freemarker.core.Environment.visit(Environment.java:210)
      at freemarker.core.Environment.process(Environment.java:190)
      at freemarker.template.Template.process(Template.java:237)
      at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:152)
      at info.magnolia.module.templating.renderers.FreemarkerTemplateRenderer.onRender(FreemarkerTemplateRenderer.java:74)
      at info.magnolia.module.templating.AbstractRenderer.render(AbstractRenderer.java:83)
      at info.magnolia.module.templating.renderers.AbstractTemplateRenderer.renderTemplate(AbstractTemplateRenderer.java:76)
      at info.magnolia.module.templating.engine.DefaultRenderingEngine$RenderingHelper$2.render(DefaultRenderingEngine.java:105)
      at info.magnolia.module.templating.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:165)
      at info.magnolia.module.templating.engine.DefaultRenderingEngine.render(DefaultRenderingEngine.java:127)
      at info.magnolia.module.templating.engine.DefaultRenderingEngine$$EnhancerByCGLIB$$91f654ef.render(<generated>)
      at info.magnolia.module.templating.RenderingFilter.render(RenderingFilter.java:132)
      at info.magnolia.module.templating.RenderingFilter.doFilter(RenderingFilter.java:92)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.BackwardCompatibilityFilter.doFilter(BackwardCompatibilityFilter.java:72)
      at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.InterceptFilter.doFilter(InterceptFilter.java:121)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.AggregatorFilter.doFilter(AggregatorFilter.java:103)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:61)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.RepositoryMappingFilter.doFilter(RepositoryMappingFilter.java:90)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:76)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.VirtualUriFilter.doFilter(VirtualUriFilter.java:130)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:57)
      at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:123)
      at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:75)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter.java:83)
      at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:61)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:89)
      at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:62)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:80)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:84)
      at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:87)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:90)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:87)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:82)
      at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:64)
      at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:70)
      at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:96)
      at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:199)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
      at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: javax.jcr.ItemNotFoundException: root node doesn't have a parent
      at org.apache.jackrabbit.core.NodeImpl.getParent(NodeImpl.java:2122)
      at info.magnolia.cms.core.DefaultContent.getParent(DefaultContent.java:368)
      at info.magnolia.cms.util.ContentWrapper.getParent(ContentWrapper.java:275)
      at info.magnolia.freemarker.models.ContentModel.getParentNode(ContentModel.java:143)
      ... 107 more

        Acceptance criteria

              gjoseph Magnolia International
              runger Richard Unger
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD