diff --git a/streams/src/main/java/org/apache/kafka/streams/KeyValue.java b/streams/src/main/java/org/apache/kafka/streams/KeyValue.java index 58f2083b8457b..a54e58bf74e24 100644 --- a/streams/src/main/java/org/apache/kafka/streams/KeyValue.java +++ b/streams/src/main/java/org/apache/kafka/streams/KeyValue.java @@ -70,8 +70,8 @@ public boolean equals(Object other) { if (other instanceof KeyValue) { KeyValue otherKV = (KeyValue) other; - return key == null ? otherKV.key == null : key.equals(otherKV.key) - && value == null ? otherKV.value == null : value.equals(otherKV.value); + return (key == null ? otherKV.key == null : key.equals(otherKV.key)) + && (value == null ? otherKV.value == null : value.equals(otherKV.value)); } else { return false; } diff --git a/streams/src/test/java/org/apache/kafka/streams/KeyValueTest.java b/streams/src/test/java/org/apache/kafka/streams/KeyValueTest.java index 47c8ecd1c2280..93423a2798617 100644 --- a/streams/src/test/java/org/apache/kafka/streams/KeyValueTest.java +++ b/streams/src/test/java/org/apache/kafka/streams/KeyValueTest.java @@ -26,6 +26,7 @@ public class KeyValueTest { private KeyValue kv1a = new KeyValue<>("key1", 1L); private KeyValue kv1b = new KeyValue<>("key1", 1L); + private KeyValue kv1c = new KeyValue<>("key1", 2L); private KeyValue kv2 = new KeyValue<>("key2", 2L); private KeyValue kv3 = new KeyValue<>("key3", 3L); @@ -34,12 +35,16 @@ public void testEquals() { assertTrue(kv1a.equals(kv1a)); assertTrue(kv1a.equals(kv1b)); assertTrue(kv1b.equals(kv1a)); + assertFalse(kv1a.equals(kv1c)); + assertFalse(kv1c.equals(kv2)); assertFalse(kv1a.equals(kv2)); assertFalse(kv1a.equals(kv3)); assertFalse(kv2.equals(kv3)); assertFalse(kv1a.equals(null)); } + + @Test public void testHashcode() { assertTrue(kv1a.hashCode() == kv1b.hashCode());