[
https://issues.apache.org/jira/browse/GROOVY-7914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15431615#comment-15431615
]
John Wagenleitner commented on GROOVY-7914:
-------------------------------------------
For this particular case which is unusual (returning true for null passed to
{{#equals()}}), I think it is reasonable to expect to do something like
{{someJsonValue?.equals(null)}}. So I would not consider this a bug.
Just a side note, the static compiler currently avoids a method call if the
right hand side of the expression is a null constant. Delegating to equals for
every call could have a negative performance impact (i.e., null checks in
loops).
> Comparison operator does not delegate to .equals() for null
> -----------------------------------------------------------
>
> Key: GROOVY-7914
> URL: https://issues.apache.org/jira/browse/GROOVY-7914
> Project: Groovy
> Issue Type: Bug
> Reporter: Dario Bertini
>
> This might be related to https://issues.apache.org/jira/browse/GROOVY-4526
> supposedly a PR over there has been merged, but the bug is still flagged as
> open (and indeed, I can locally reproduce it).
> This one instead caused problems when handling org.json.JSONObject
> That type uses its own internal JSONObject.Null class to represent null
> inside json (which is useful to distinguish between keys being missing, and
> values explicitly being set to null)
> it overrides .equals(other) to check if the other object is null, but that
> method is never invoked
> basically:
> JSONObject.NULL == null
> false
> JSONObject.NULL.equals(null)
> true
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)