TypeCoercer currently uses Object -> String and String -> Boolean, there should 
be a direct coercion from Object -> Boolean for <t:if/> performance.
----------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: TAP5-1621
                 URL: https://issues.apache.org/jira/browse/TAP5-1621
             Project: Tapestry 5
          Issue Type: Improvement
          Components: tapestry-core
    Affects Versions: 5.3
            Reporter: Josh Canfield


An issue was raised in this thread:
http://tapestry.1045711.n5.nabble.com/Null-check-property-expression-syntax-td4726386.html

Describing the problem where:

<t:if test="MyObject">

causes MyObject to be coerced to a String before being coerced to a Boolean. 
For some objects this may be an expensive operation, and the common case (how 
often is the Entity you are editing on a page actually null?)

Adding an explicit Object -> Boolean coercion will remove the need for the 
Object -> String coercion.

A Number -> Boolean coercion is also required to prevent Integer -> Boolean 
from choosing the Object -> Boolean as a match (currently it goes Integer -> 
Long -> Boolean)

At this point the only known issue is that any POJO that depends on the fact 
that returning "false" from toString will cause the Object -> String -> Boolean 
to return false will be broken. This seems like an unlikely case and can be 
worked around by providing a specific TypeCoercion for that object.




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to