Re: Problem with the function's error stacktrace and debugging

Daniel Dekany <[email protected]> Fri, 10 May 2013 23:51:19 +0200
Newsgroups gmane.comp.web.freemarker.user
Message-ID <[email protected]>
Thanks, I have attached them to my TODO.

-- 
Thanks,
 Daniel Dekany


Thursday, May 9, 2013, 4:12:49 PM, Albert Kam wrote:

> Hello again Mr Daniel. Thank you for your infos.
>
> I have just made a simple scenario in hope to make your job easier !
>
> Here's the source code : http://tny.cz/6e692350
> And here's the ftl : http://tny.cz/6f502578
> And here's the whole error in the stdout : http://tny.cz/5260ff75
>
>
>
> On Thu, May 9, 2013 at 6:58 AM, Daniel Dekany <[email protected]> wrote:
> Wednesday, May 8, 2013, 1:02:19 PM, Albert Kam wrote:
>
>> I have just faced this situation where the error message is not
>> suffucient to determine stacktrace of ftl-s that lead to the error.
>>
>> So, i have an ftl file :
>>
>> <@layout.main>
>>    my page contents here,
>>    calling another macro here : ${url.myUrlToAnotherPage(paramsHere)}
>> </@layout.main>
>>
>> Now, in the url.ftl file, i have the function of
>> myUrlToAnotherPage, which calls other functions that exist in the url.ftl.
>>
>> But the error message only display it like this :
>>
>> Error on line 23, column 48 in lib/url.ftl
>> Expecting a string, date or number here, Expression finalValue is
>> instead a freemarker.template.SimpleSequence
>> The problematic instruction:
>> ----------
==>>> return [on line 23, column 17 in lib/url.ftl] [on line 23, column 17 in lib/url.ftl]
>>  in user-directive layout.layout [on line 11, column 1 in post/ad/no0035.ftl]
>> ----------
>> With this error message, i know that the rror is on line 23,
>> another function called blah for example. But i dont know who calls
>> blah, it's not in the stack trace.
>> After some dirty removing parts of the page to get the culprit, i found out that :
>> - wrap my page as a nested value for another macro (on line 11,
>> displayed on the error stacktrace)
>> - my page calls url.myUrlToAnotherPage function
>> - url.myUrlToAnotherPage calls blahblah function
>> - blahblah calls blah function
>> - blah function errors (on line 23, displayed on the error stacktrace)
>
> Looks like a bug or quality problem in the error reporting. I will try
> to look into it in the future.
>
>> The second thing i want to ask that is related with this is :
>> How do i debug like the simple System.out.println in freemarker functions ?
>> Do i have to bind and call the java functions or something cool
>> exists already in freemarker to achieve this ?
>
> Unfortunately not. Something like #log_[trace|debug|info|warn|error]
> should be added, but it wasn't yet done. So for now you have to
> implement your own directive or call a method for this. (You may want
> to use the logging API of FreeMarker.)
>
>> Thank you !
>
> --
> Thanks,
>  Daniel Dekany


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may