1
2
|
[18/10/10 02:19:45:045 EST] ERROR app.VelocityEngine: Left side ($queryType) of '==' operation has null value. Operation not possible. /usr/local/dotcms/webap
ps/../dotCMS/assets/1/4/14777.vtl [line 5, column 25]
|
This results from code such as:
1
|
#if ($queryType == "$expectedValue" )
|
I thought this was strange because the macro this code belonged to wasn't even being executed - so the variable never gets a value anyway. It turns out the fix is to quote the variable, as per below.
1
|
#if ("$queryType" == "$expectedValue" )
|
That's fine for string values, but won't stop an error on anything involved in a numerical operation.
1
|
#if ($totalResults > 0 )
|
The above code results in this error:
1
2
|
[18/10/10 02:46:43:043 EST] ERROR app.VelocityEngine: Left side ($totalResults) of '>' operation has null value. Operation not possible. /usr/local/dotcms/webap
ps/../dotCMS/assets/1/4/14777.vtl [line 1, column 24]
|
The fix is to make sure it is a number under any circumstances.
1
2
3
4
|
#if (!$UtilMethods.isSet($totalResults))
#set($totalResults = 0)
#end
#if ($totalResults > 0 )
|
It seems Velocity is a bit like bash or DOS shell scripts in this respect; unless you quote a variable name, it will see null as the value and output an error.
My dotCMS notes.