Left side (xx) of 'y' operation has null value. Operation not possible
I have been seeing a lot of messages like this in my dotCMS logs:
This results from code such as:
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.
That's fine for string values, but won't stop an error on anything involved in a numerical operation.
The above code results in this error:
The fix is to make sure it is a number under any circumstances.
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.
[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:
#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.
#if ("$queryType" == "$expectedValue" )
That's fine for string values, but won't stop an error on anything involved in a numerical operation.
#if ($totalResults > 0 )
The above code results in this error:
[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.
#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.