Hello Adam,

We can't pass *null* from ftl if we have to pass null then we can use *NULL* 
like:

<#assign productStroe = delegator.findList("ProductStore",NULL,NULL,NULL,NULL, 
false) />

Passing *null* is prohibited in NodeListModel class 
(http://www.docjar.org/docs/api/freemarker/ext/xml/NodeListModel.html). 

To create an empty model, pass it an empty collection. If we pass an empty list 
in new findByAnd method then it should work fine:

<#assign shipmentReceipts = delegator.findByAnd("ShipmentReceipt", {"orderId": 
orderHeader.getString("orderId"), "orderItemSeqId": orderItem.orderItemSeqId}, 
[], false)/>

I have tested it and its working fine.


Thanks & Regards
-- 
Deepak Dixit

On May 18, 2012, at 1:15 PM, Adrian Crum wrote:

> On 5/18/2012 5:50 AM, Adam Heath wrote:
>> On 05/17/2012 12:23 PM, Jacopo Cappellato wrote:
>>> file are attached; that bug tracker is really awful.
>> 
>> This is all becoming very troubling.
>> 
>> == example methods
>> String a(String name, List list) {}
>> String a(String name, Map map) {}
>> String a(Object[] args) {}
>> 
>> String b(String name, List list) {}
>> String b(String name, Map map) {}
>> String b(Object... args) {}
>> 
>> == example templates
>> ${object.a(string, null)}
>> ${object.b(string, null)}
>> 
>> ==
>> 
>> In 2.3.18, freemarker can't find any methods at all.  In 2.3.19, it can find 
>> the b vararg method.  In either situation, that is wrong.
>> 
>> The correct situation for both is to say there are 2 matching methods, the 
>> List and Map variants.  Without my patch, when a null is used, any 
>> non-primitive method will never be considered as a possible candidate.
>> 
>> I'm still discussing with freemarker upstream, but I get the feeling that 
>> they won't provide a fix for the 2.3 branch, and a true, correct fix for 2.4 
>> will be long in coming.
>> 
>> This means we need to come up with a workaround for ofbiz.  I'm up for 
>> suggestions.  We really can't undo the change, that just doesn't seem right 
>> to me.
>> .
> 
> In my experience with FreeMarker, there are a lot of things that are 
> replaceable - like TemplateLoader and TemplateExceptionHandler. Does 
> FreeMarker have a "Object Method Resolver" that we can replace? Would a 
> custom BeansWrapper help?
> 
> -Adrian
> 

Reply via email to