[ https://issues.apache.org/jira/browse/KAFKA-6673?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guozhang Wang reassigned KAFKA-6673: ------------------------------------ Assignee: Asutosh Pandya > Segment and Stamped implement Comparable, but don't override equals. > -------------------------------------------------------------------- > > Key: KAFKA-6673 > URL: https://issues.apache.org/jira/browse/KAFKA-6673 > Project: Kafka > Issue Type: Improvement > Components: streams > Reporter: Koen De Groote > Assignee: Asutosh Pandya > Priority: Minor > Fix For: 2.0.0 > > Attachments: KAFKA_6673.patch > > > The classes in question: > https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/state/internals/Segment.java > and > https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/processor/internals/Stamped.java > This came up while doing static analysis on the codebase on the trunk branch. > As described by the analysis tool built into Intellij: > {quote} > Reports classes which implement java.lang.Comparable which do not override > equals(). If equals() is not overridden, the equals() implementation is not > consistent with the compareTo() implementation. If an object of such a class > is added to a collection such as java.util.SortedSet, this collection will > violate the contract of java.util.Set, which is defined in terms of equals(). > {quote} > > Implementing an equals for an object is generally a best practice, especially > considering this caveat, where it's not the compareTo that will be used but > the equals method. -- This message was sent by Atlassian JIRA (v7.6.3#76005)