[MAGNOLIA-7812] TemplatingFunctions#asContentMapList() cast exception Created: 25/May/20 Updated: 03/Jun/20 |
|
| Status: | Reopened |
| Project: | Magnolia |
| Component/s: | templating |
| Affects Version/s: | 6.2 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Neutral |
| Reporter: | Richard Gange | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| Template: |
|
| Acceptance criteria: |
Empty
|
| Task DoD: |
[ ]*
Doc/release notes changes? Comment present?
[ ]*
Downstream builds green?
[ ]*
Solution information and context easily available?
[ ]*
Tests
[ ]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
| Bug DoR: |
[ ]*
Steps to reproduce, expected, and actual results filled
[ ]*
Affected version filled
|
| Description |
|
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
|
| Comments |
| Comment by Richard Gange [ 03/Jun/20 ] |
|
Reopened. It can be reproduced on 6.2.1 as well. The only difference it you do not see the yellow screen. Instead you see what is displayed here MGNLFORM-316. |