[jira] [Commented] (OFBIZ-6057) Quote item view FreeMarker error message due to changes made in OFBIZ-2120

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (OFBIZ-6057) Quote item view FreeMarker error message due to changes made in OFBIZ-2120

Nicolas Malin (Jira)

    [ https://issues.apache.org/jira/browse/OFBIZ-6057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14491665#comment-14491665 ]

Jacques Le Roux commented on OFBIZ-6057:
----------------------------------------

BTW I was wrong, weirdly there is no needs to change R12.04 though it uses Freemarker 2.3, exactly 2.3.19, this is confusing... But the other null assignments are wrong in trunk and newer branches anyay

> 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 12.04, Release Branch 13.07, Release Branch 14.12, Trunk
>         Environment: Linux
>            Reporter: Forrest Rae
>            Assignee: Deepak Dixit
>             Fix For: 14.12.01, 13.07.02, Upcoming Branch
>
>
> 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:
> <a href="https://github.com/apache/ofbiz/blob/trunk/applications/order/webapp/ordermgr/quote/ViewQuoteItemInfo.ftl##L56">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)