In a project I work on there is a relatively large hash map for which the key type has a @EqualsAndHashCode generated hashCode(). After introducing an additional property to the key type, for which the value is null on most instances, I noticed a massive degradation in efficiency of adds to the aforementioned map.
After some digging around it turns out that the AST generated by that transform performs an identity check using is() between the property/field value and this. In cases where the property/field value is null this leads to a NullObject.is() call, for which, as far as I understand, no call site caching occurs.
A PR with a jmh benchmark and a very simple fix to follow.