[OpenJDK 2D-Dev] RFR: 8263981: java.awt.image.ComponentSampleModel equals/hashcode use numBands twice
shade at openjdk.java.net
Mon Mar 22 17:51:46 UTC 2021
On Mon, 22 Mar 2021 17:44:03 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:
>> SonarCloud reports the problem in ComponentSampleModel.equals:
>> Correct one of the identical sub-expressions on both sides of operator "&&"
>> ...near "this.numBands == that.numBands". It is checked twice. hashCode also processes it twice.
> src/java.desktop/share/classes/java/awt/image/ComponentSampleModel.java line 1228:
>> 1226: }
>> 1227: hash ^= numBands;
>> 1228: hash <<= 8;
> Since this mistake was done in two places I think this is a typo here and not an intentional thing.
I am a bit confused by this comment :) I suspect that `equals` got duplicated `numBands` first, and then whoever did the `hashcode` just hashed the same fields in the same order, duplicating it again.
More information about the 2d-dev