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)

Reply via email to