when-present<#else>when-missing#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${(wordDetails.info?size)} [in template "baikeWordLeft.ftl" at line 305, column 44]
- Reached through: #include "baikeWordLeft.ftl" [in template "baikeWordDetils.ftl" at line 80, column 9]
----
Java stack trace (for programmers):
----
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131)
at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:77)
at freemarker.core.UnexpectedTypeException.(UnexpectedTypeException.java:40)
at freemarker.core.BuiltInsForMultipleTypes$sizeBI._eval(BuiltInsForMultipleTypes.java:448)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.ParentheticalExpression._eval(ParentheticalExpression.java:44)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82)
at freemarker.core.DollarVariable.accept(DollarVariable.java:41)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visitByHiddingParent(Environment.java:345)
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.include(Environment.java:2072)
at freemarker.core.Include.accept(Include.java:167)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at com.concom.staticize.util.FreeMarkertUtil.analysisTemplate(FreeMarkertUtil.java:57)
at com.concom.staticize.job.task.yunying.BaikeTesk.create(BaikeTesk.java:221)
at com.concom.staticize.job.task.yunying.BaikeTesk$1.call(BaikeTesk.java:171)
at com.concom.staticize.job.task.yunying.BaikeTesk$1.call(BaikeTesk.java:163)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)