Koen De Groote created KAFKA-6673: ------------------------------------- Summary: 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
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)