[ https://issues.apache.org/jira/browse/OFBIZ-6057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sharan Foga updated OFBIZ-6057: ------------------------------- Sprint: (was: Bug Crush Event - 21/2/2015) > 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)