You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by js...@apache.org on 2023/05/03 17:58:38 UTC

[kafka] branch 3.4 updated: KAFKA-14963; Do not use equals with Uuid (#13668)

This is an automated email from the ASF dual-hosted git repository.

jsancio pushed a commit to branch 3.4
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/3.4 by this push:
     new b7996d1152f KAFKA-14963; Do not use equals with Uuid (#13668)
b7996d1152f is described below

commit b7996d1152f75eaaf1db468d39f49e1c551538b2
Author: José Armando García Sancio <js...@users.noreply.github.com>
AuthorDate: Wed May 3 10:58:30 2023 -0700

    KAFKA-14963; Do not use equals with Uuid (#13668)
    
    Uuid is an object so they need to be compared with the equals method and not the == operator.
---
 .../apache/kafka/controller/ControllerMetricsManager.java |  6 +++---
 .../kafka/controller/ControllerMetricsManagerTest.java    | 15 ++++++++++-----
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/metadata/src/main/java/org/apache/kafka/controller/ControllerMetricsManager.java b/metadata/src/main/java/org/apache/kafka/controller/ControllerMetricsManager.java
index 60c48312038..f86807e76a7 100644
--- a/metadata/src/main/java/org/apache/kafka/controller/ControllerMetricsManager.java
+++ b/metadata/src/main/java/org/apache/kafka/controller/ControllerMetricsManager.java
@@ -202,10 +202,10 @@ final class ControllerMetricsManager {
             throw new IllegalArgumentException(String.format("Broker with id %s is not registered", brokerId));
         }
 
-        if (fencingChange == BrokerRegistrationFencingChange.FENCE) {
+        if (fencingChange.equals(BrokerRegistrationFencingChange.FENCE)) {
             fencedBrokers.add(brokerId);
             updateBrokerStateMetrics();
-        } else if (fencingChange == BrokerRegistrationFencingChange.UNFENCE) {
+        } else if (fencingChange.equals(BrokerRegistrationFencingChange.UNFENCE)) {
             fencedBrokers.remove(brokerId);
             updateBrokerStateMetrics();
         } else {
@@ -269,7 +269,7 @@ final class ControllerMetricsManager {
 
     private void replay(RemoveTopicRecord record) {
         Uuid topicId = record.topicId();
-        Predicate<TopicIdPartition> matchesTopic = tp -> tp.topicId() == topicId;
+        Predicate<TopicIdPartition> matchesTopic = tp -> tp.topicId().equals(topicId);
 
         topicCount--;
         topicPartitions.keySet().removeIf(matchesTopic);
diff --git a/metadata/src/test/java/org/apache/kafka/controller/ControllerMetricsManagerTest.java b/metadata/src/test/java/org/apache/kafka/controller/ControllerMetricsManagerTest.java
index 8cfeea417be..c2db11a2294 100644
--- a/metadata/src/test/java/org/apache/kafka/controller/ControllerMetricsManagerTest.java
+++ b/metadata/src/test/java/org/apache/kafka/controller/ControllerMetricsManagerTest.java
@@ -186,11 +186,16 @@ final class ControllerMetricsManagerTest {
         ControllerMetrics metrics = new MockControllerMetrics();
         ControllerMetricsManager manager = new ControllerMetricsManager(metrics);
 
-        Uuid id = Uuid.randomUuid();
-        manager.replay(topicRecord("test", id));
-        manager.replay(partitionRecord(id, 0, 0, Arrays.asList(0, 1, 2)));
-        manager.replay(partitionRecord(id, 1, 0, Arrays.asList(0, 1, 2)));
-        manager.replay(removeTopicRecord(id));
+        Uuid createTopicId = Uuid.randomUuid();
+        Uuid createPartitionTopicId = new Uuid(
+            createTopicId.getMostSignificantBits(),
+            createTopicId.getLeastSignificantBits()
+        );
+        Uuid removeTopicId = new Uuid(createTopicId.getMostSignificantBits(), createTopicId.getLeastSignificantBits());
+        manager.replay(topicRecord("test", createTopicId));
+        manager.replay(partitionRecord(createPartitionTopicId, 0, 0, Arrays.asList(0, 1, 2)));
+        manager.replay(partitionRecord(createPartitionTopicId, 1, 0, Arrays.asList(0, 1, 2)));
+        manager.replay(removeTopicRecord(removeTopicId));
         assertEquals(0, metrics.globalPartitionCount());
     }