serenity-bdd / serenity-maven-plugin

19 stars 21 forks source link

Error executing FreeMarker template #76

Closed SiKing closed 4 years ago

SiKing commented 4 years ago

Yesterday I updated all my tests to serenity 2.2.10. When generating report, I get the following error:

[INFO] --- serenity-maven-plugin:2.2.10:aggregate (default) @ milestones-functionaltests ---
[ERROR] Error executing FreeMarker template
FreeMarker template error:
The following has evaluated to null or missing:
==> formatter.renderHeader  [in template "freemarker/home.ftl" at line 137, column 58]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>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: ${formatter.htmlCompatibleStoryTitle(...  [in template "freemarker/home.ftl" at line 137, column 21]
----

Java stack trace (for programmers):
----
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
    at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
    at freemarker.core.UnexpectedTypeException.newDescriptionBuilder(UnexpectedTypeException.java:85)
    at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:63)
    at freemarker.core.NonMethodException.<init>(NonMethodException.java:74)
    at freemarker.core.MethodCall._eval(MethodCall.java:67)
    at freemarker.core.Expression.eval(Expression.java:101)
    at freemarker.core.ListLiteral.getModelList(ListLiteral.java:93)
    at freemarker.core.MethodCall._eval(MethodCall.java:60)
    at freemarker.core.Expression.eval(Expression.java:101)
    at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100)
    at freemarker.core.DollarVariable.accept(DollarVariable.java:63)
    at freemarker.core.Environment.visit(Environment.java:331)
    at freemarker.core.Environment.visit(Environment.java:337)
    at freemarker.core.Environment.visit(Environment.java:337)
    at freemarker.core.Environment.process(Environment.java:310)
    at net.thucydides.core.reports.templates.FreemarkerReportTemplate.merge(FreemarkerReportTemplate.java:39)
    at net.thucydides.core.reports.html.Merger$MergeBuilder.to(Merger.java:37)
    at net.thucydides.core.reports.html.BaseReportingTask.generateReportPage(BaseReportingTask.java:45)
    at net.thucydides.core.reports.html.TagReportingTask.generateTagReport(TagReportingTask.java:83)
    at net.thucydides.core.reports.html.TagReportingTask.generateReports(TagReportingTask.java:64)
    at net.thucydides.core.reports.html.ReportExecutor.call(ReportExecutor.java:33)
    at net.thucydides.core.reports.html.ReportExecutor.call(ReportExecutor.java:12)
    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)

The above error repeats many times.

However, the report looks like it did get generated.

SiKing commented 4 years ago

This problem goes away in 2.2.12