[
https://issues.apache.org/jira/browse/GROOVY-7914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15436949#comment-15436949
]
Jochen Theodorou commented on GROOVY-7914:
------------------------------------------
The explanation in http://groovy-lang.org/operators.html#_identity_operator is
totally oversimplified, since we have to do widening and if we have Comparable
implementing values, we actually use compareTo instead of equals. Which means
we cannot simply map to a method.
> 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)