BTW I see several places where we have:
if ($("${extraAnchor}link") != null) {
if ($("tmShow${extraAnchor}") != null) {
…
This doesn’t seem right either…
According to http://wiki.apache.org/velocity/CheckingForNull this is not how to
check for null.
WDYT?
Thanks
-Vincent
On 23 May 2015 at 17:58:51, [email protected] ([email protected]) wrote:
Hi Caleb,
On 23 May 2015 at 16:28:17, Caleb James DeLisle
([email protected](mailto:[email protected])) wrote:
> Agreed, I can't see what that line should do, if anything.
> The best it can do is add a null element to the list, kicking the value to
> index 1.
“null” doesn’t exist in velocity AFAIK so the statement is even invalid IMO
(see below).
> As for the thinking of the author, the comment implies he didn't clarify his
> thinking
> about what was being done and why so I'd favor simply dropping the line and
> doing a
> few basic (manual) "does it still work" tests to be sure.
No it’s more complex than that, I think the author meant:
#set( $discard = $arr.add( $NULL ) ) ## this may be variable...
If you check the vm the code is:
#set( $discard = $arr.add( null ) ) ## this may be variable...
#set( $discard = $arr.add( "$value" ) )
#set( $discard = $filterMap.put("$key", $arr))
Thus it builds a 2 element list which is then put in a map. This map is passed
to getAllMatchedLocalUsers() (for ex), which says in its javadoc:
* @param matchFields the fields to match. It is a Map with field name as
key and for value :
* <ul>
* <li>"matching string" for document fields</li>
* <li>or ["field type", "matching string"] for object
fields</li>
* </ul>
The javadoc doesn’t mention the support for null as the key. However following
the source code it seems to lead to getAllMatchedLocalUsersOrGroups() which has
a more useful javadoc:
<li>fieldtype : for example StringProperty. If null the field is considered as
document field</li>
Thus it seems the author really wanted to pass null and that would be $NULL.
Ok I’ve checked in a page the result of:
{{velocity}}
#set ($arr = [])
#set( $discard = $arr.add( null ) ) ## this may be variable...
#set( $discard = $arr.add( "value" ) )
$arr
{{/velocity}}
and strangely enough it gives [null, value] :)
So even if invalid it still puts null.
Anyway fixing by using $NULL
Thanks
-Vincent
>
> Thanks,
> Caleb
>
>
> On 05/23/2015 10:56 AM, [email protected] wrote:
> > Hi devs,
> >
> > I’ve noticed the following in getusers.vm:
> >
> > #set ($arr = [])
> > #set( $discard = $arr.add( null ) ) ## this may be variable...
> > #set( $discard = $arr.add( "$value" ) )
> >
> >
> > The “null” part doesn’t seem correct at all and I don’t understand the
> > comment "## this may be variable…”
> >
> > Any idea what the original author wanted to do?
> >
> > Thanks
> > -Vincent
> >
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs