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

TemplatingFunctions#asContentMapList() cast exception

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Neutral Neutral
    • None
    • 6.2
    • templating
    • None

      The issue can be seen on the travel demo's Book your tour page. It's a freemarker exception at the bottom.

      The root of the problem seems to be a strange method resolution.

      Method called:

       public List<ContentMap> asContentMapList(Collection<Node> nodeList)
      

      The problem is that nodeList is of type ContentMap which leads to the cast exception.

      Caused by: freemarker.core._TemplateModelException: Java method "info.magnolia.templating.functions.TemplatingFunctions.asContentMapList(Collection)" threw an exception when invoked on info.magnolia.personalization.templating.VariantAwareTemplatingFunctions object "info.magnolia.personalization.templating.VariantAwareTemplatingFunctions@9855af"; see cause exception in the Java stack trace.
      
      ----
      FTL stack trace ("~" means nesting-related):
      	- Failed at: #assign conditionList = cmsfn.asConte...  [in template "form/components/formCondition.ftl" at line 8, column 9]
      ----
      	at freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:289) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:252) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:77) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.MethodCall._eval(MethodCall.java:62) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Expression.eval(Expression.java:101) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Assignment.accept(Assignment.java:134) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Environment.visit(Environment.java:331) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Environment.visit(Environment.java:337) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Environment.visit(Environment.java:337) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Environment.process(Environment.java:310) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.template.Template.process(Template.java:383) ~[freemarker-2.3.29.jar:2.3.29]
      	at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:171) ~[magnolia-freemarker-support-6.2.jar:?]
      	at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:99) ~[magnolia-rendering-6.2.jar:?]
      	... 355 more
      Caused by: java.lang.ClassCastException: info.magnolia.jcr.util.ContentMap cannot be cast to javax.jcr.Node
      	at info.magnolia.templating.functions.TemplatingFunctions.asContentMapList(TemplatingFunctions.java:914) ~[magnolia-templating-6.2.jar:?]
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]
      	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
      	at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1505) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:72) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.MethodCall._eval(MethodCall.java:62) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Expression.eval(Expression.java:101) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Assignment.accept(Assignment.java:134) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Environment.visit(Environment.java:331) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Environment.visit(Environment.java:337) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Environment.visit(Environment.java:337) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.core.Environment.process(Environment.java:310) ~[freemarker-2.3.29.jar:2.3.29]
      	at freemarker.template.Template.process(Template.java:383) ~[freemarker-2.3.29.jar:2.3.29]
      	at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:171) ~[magnolia-freemarker-support-6.2.jar:?]
      	at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:99) ~[magnolia-rendering-6.2.jar:?]
      	... 355 more
      

        Acceptance criteria

          1. debug-mode.png
            debug-mode.png
            1.01 MB
          2. exception.png
            exception.png
            202 kB

              Unassigned Unassigned
              rgange Richard Gange
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:

                  Bug DoR
                  Task DoD