(I attach this issue to the VelocityView component but we may need a Generic component in Jira)
When $query is the ValueParser object for the query string http://...?foo=5,
then $query.foo.int is an invalid reference.
Why? Because there is a collision of variable names in ValueParserSub.get(Object key).
I profit of this opportunity to state that I really don't like the ValueParserSub class, because it breaks the "#if($query.foo)" syntax. Hence, it is not backward compatible. Or at least, it could return null for an unexistant key.
Is it really usefull to keep it now that Velocity handles conversions much better? Since obviously nobody used the $query.foo.int feature, it is still time to remove it... Also, since the need to convert between types can emerge elsewhere, it would be much cleaner to have a standalone converter object. Yes, we loose the syntax $query.foo.int, but is it that nice a syntax?