Thanks much, Tim, but in this case

1) tn is not null, but tn.USFormattedTn is null (perhaps because some
dependent object failed in the background).

cannot be the case - the function merely applies formatting to the single data element within the tn object (in this case the "1-"). Since the log entry shows a value for tn, there is no possibility of null here.

2) There are multiple calls to $tn.USFormattedTn, and the happy path
cases work fine, but edge cases are misspelled:

there is only one path in this particular template

3) Someone accidentally calls the .vm directly and not through the
controller (robots can do this in some cases, or bad links).

impossible. There is only one path into the templates from my code. there is no "back door"

4) The value of $tn goes null between the controller debug statement and
the forward to the .vm.

I investigated this and found it "impossible" - no code does it anyway, although if we are talking about machine glitches, of course, nothing is impossible.

So, are we talking about machine glitches, then?

White, Tim wrote:

I can see from my logs that the context passed to this template in
this
instance had the tn variable and that it wasn't found by Velocity:

2009-01-20 16:58:15,902 [robo/AIM:jrelay/2701] TRACE velocity.VelociWrapper - {tn=203-999-9999, lang=English} 2009-01-20 16:58:15,910 [robo/AIM:jrelay/2701] DEBUG Velocity - ResourceManager : found /resources/en_US/number/ExitComplete.vm with loader org.apache.velocity.tools.view.servlet.WebappLoader 2009-01-20 16:58:15,911 [robo/AIM:jrelay/2701] DEBUG Velocity - Null reference [template '/resources/en_US/number/ExitComplete.vm', line 6,

column 56] : $tn.USFormattedTn cannot be resolved.



When I've had problems like these in the past, here are some things that
it's turned out to be (using your variable as an example):

1) tn is not null, but tn.USFormattedTn is null (perhaps because some
dependent object failed in the background).

2) There are multiple calls to $tn.USFormattedTn, and the happy path
cases work fine, but edge cases are misspelled:

        #if ($allisgood)
                Your TN is: $tn.USFormattedTn
        #else
                Your TN is: $tn.usformattedtn
        #end

3) Someone accidentally calls the .vm directly and not through the
controller (robots can do this in some cases, or bad links).

4) The value of $tn goes null between the controller debug statement and
the forward to the .vm.


Just some ideas of the kinds of things that this has been for me in the
past - I hope you can figure it out!

Tim



This communication is the property of Qwest and may contain confidential or
privileged information. Unauthorized use of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy all copies of the communication and any attachments.

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





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

Reply via email to