[ 
https://issues.apache.org/jira/browse/VELOCITY-739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12766933#action_12766933
 ] 

Nathan Bubna commented on VELOCITY-739:
---------------------------------------

I believe the idea was that, in strict mode, the quiet reference notation is 
for *null* values, not for missing ones.   A distinction is made in strict 
reference mode between a reference whose key is present in the context but 
whose value is null and a reference which has no such key in the context.   The 
same for properties/method calls.  If there's no such thing, the quiet 
reference notation won't help you, but if it exists and returns as null, then 
then you use the quiet ref to keep it from rendering.

Honestly, i'm sympathetic to your view of it, but i think Byron made a stronger 
case for the current behavior.  In strict reference mode, there's no tolerance 
for completely "unexpected" references, though it can certainly handle null 
values quietly.

> Do not throw exception for quiet references in strict reference checking mode
> -----------------------------------------------------------------------------
>
>                 Key: VELOCITY-739
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-739
>             Project: Velocity
>          Issue Type: Improvement
>          Components: Engine
>    Affects Versions: 1.6.2
>            Reporter: Will Glass-Husain
>
> I used strict reference checking for the first time and discovered that it 
> throws exceptions even for quiet references.
> <input class="signupInput" type="text" id="StxtFirstNames"
> name="firstName" value="$!user.firstName"/>
> org.apache.velocity.exception.MethodInvocationException: Variable
> $user has not been set at layout/slide_login.vm[line 13, column 117]
> This doesn't make sense to me.  If a template author designates a reference 
> as quiet, it's explicitly not an error.  We're preventing the use of this 
> convenient feature.
> It's not a hard change to fix this.  Does it break backwards compatibility if 
> we change this?
> Incidentally, there's an identical problem for InvalidReferenceEventHandler.  
> I'll file a separate issue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to