Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
5.3
-
None
Description
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.