Forrest Rae created OFBIZ-6057:
----------------------------------
Summary: Quote item view FreeMarker error message due to changes
made in OFBIZ-2120
Key: OFBIZ-6057
URL: https://issues.apache.org/jira/browse/OFBIZ-6057
Project: OFBiz
Issue Type: Bug
Components: accounting, order
Affects Versions: Release Branch 13.07
Environment: Linux
Reporter: Forrest Rae
In order to fix OFBIZ-2120, code was added to the
applications/order/webapp/ordermgr/quote/ViewQuoteItemInfo.ftl file at lines 53
through 57, with the offending line being at 5:
https://github.com/apache/ofbiz/blob/trunk/applications/order/webapp/ordermgr/quote/ViewQuoteItemInfo.ftl##L56
Here is the commit:
https://github.com/apache/ofbiz/commit/27253c4667e87721212fa8955d75c74a0d171c73
This ends up causing the following error:
[java] freemarker.core.InvalidReferenceException: The following has
evaluated to null or missing:
[java] ==> null [in template
"component://order/webapp/ordermgr/quote/ViewQuoteItemInfo.ftl" at line 56,
column 40]
[java]
[java] ----
[java] Tip: If the failing expression is known to be legally refer to
something that's 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)??
[java] ----
[java]
[java] ----
[java] FTL stack trace ("~" means nesting-related):
[java] - Failed at: #assign product = null [in template
"component://order/webapp/ordermgr/quote/ViewQuoteItemInfo.ftl" at line 56,
column 21]
[java] - Reached through: #list quoteItems as quoteItem [in template
"component://order/webapp/ordermgr/quote/ViewQuoteItemInfo.ftl" at line 52,
column 13]
The main reason for this is because there is no concept of "null" in FreeMarker
2.3, as the following thread explains:
http://ehc.ac/p/freemarker/discussion/2346/thread/85da30a4/ Not sure how to go
about fixing this error, the thread suggests setting the variable to the string
"null".
There are other instances of this bug as well:
$ grep -r "<#assign" * | grep "= null"
applications/order/webapp/ordermgr/return/returnItems.ftl:
<#assign returnItemSubTotal = null > <#-- otherwise the last item's might
carry over -->
applications/order/webapp/ordermgr/quote/ViewQuoteItemInfo.ftl:
<#assign product = null> <#-- don't drag it along to the next iteration -->
applications/accounting/webapp/accounting/reports/DepositSlip.fo.ftl:
<#assign creditCard = null/>
framework/webtools/webapp/webtools/datafile/viewdatafile.ftl: <#assign
lastRecordName = null>
Reproduction Steps:
1) Visit http://demo-stable-ofbiz.apache.org/ordermgr/control/FindRequest
2) Click "New Request"
3) Set
Cust Request Type Id = Request for Quote
Requesting Party = DemoCustomer
Cust Request Name = Test Request
Description = This is a test request.
4) Click "Sumbit"
5) "Create Quote from request"
6) error will appear
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)