You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Nathan Bubna (JIRA)" <de...@velocity.apache.org> on 2009/10/17 17:58:31 UTC

[jira] Commented: (VELOCITY-739) Do not throw exception for quiet references in strict reference checking mode

    [ 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: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org