freemarker-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Dekany (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FREEMARKER-68) Double-question mark operator does not properly test for Jython attributes
Date Fri, 11 Aug 2017 10:06:00 GMT

     [ https://issues.apache.org/jira/browse/FREEMARKER-68?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Daniel Dekany updated FREEMARKER-68:
------------------------------------
    Summary: Double-question mark operator does not properly test for Jython attributes  (was:
Double-question mark operator does not properly test for attributes)

> Double-question mark operator does not properly test for Jython attributes
> --------------------------------------------------------------------------
>
>                 Key: FREEMARKER-68
>                 URL: https://issues.apache.org/jira/browse/FREEMARKER-68
>             Project: Apache Freemarker
>          Issue Type: Bug
>          Components: engine
>    Affects Versions: 2.3.23
>            Reporter: Jason Sachs
>
> The double-question mark operator doesn't work properly with some Jython objects.
> It works properly with dicts.
> It does not work properly with custom classes and triggers an item lookup.
> Example setup: (I can't post a complete self-contained example, sorry)
> Jython code called before FreeMarker template is rendered:
> {code}
> class VoodooDoll(object):
>     def pinch(self):
>         return "ouch"
> model['test1'] = dict(voodooDoll=VoodooDoll())
> {code}
> FreeMarker template:
> {code}
> <#if test1.blah??>
> blah present
> </#if>
> <#if test1.voodooDoll??>
> voodoo doll present
> </#if>
> <#if test1.voodooDoll.pinch??>
> voodoo doll pinch present
> </#if>
> <#if test1.voodooDoll.hit??>
> voodoo doll hit present
> </#if>
> {code}
> This produces the output
> {noformat}
> voodoo doll present
> voodoo doll pinch present
> {noformat}
> so the first three {{#if}} tests work properly, but the fourth one causes this error:
> {noformat}
> 	- Failed at: #if test1.voodooDoll.hit??  [in template "source\\aux-files\\parameters.html.template"
at line 58, column 1]
> ...
> Caused by: TypeError: 'VoodooDoll' object is unsubscriptable
> 	at org.python.core.Py.TypeError(Py.java:235)
> 	at org.python.core.PyObject.__finditem__(PyObject.java:585)
> 	at org.python.core.PyObjectDerived.__finditem__(PyObjectDerived.java:861)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message