You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by gu...@apache.org on 2015/10/06 22:35:07 UTC

kafka git commit: KAFKA-2599: Fix Metadata.getClusterForCurrentTopics throws NPE

Repository: kafka
Updated Branches:
  refs/heads/trunk 726e23ef4 -> b46cb3b29


KAFKA-2599: Fix Metadata.getClusterForCurrentTopics throws NPE

…h null checking

Author: Edward Ribeiro <ed...@gmail.com>

Reviewers: Ismael Juma, Guozhang Wang

Closes #262 from eribeiro/KAFKA-2599


Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/b46cb3b2
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/b46cb3b2
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/b46cb3b2

Branch: refs/heads/trunk
Commit: b46cb3b2975afd8a3e82a0265c57760d8b9910da
Parents: 726e23e
Author: Edward Ribeiro <ed...@gmail.com>
Authored: Tue Oct 6 13:39:17 2015 -0700
Committer: Guozhang Wang <wa...@gmail.com>
Committed: Tue Oct 6 13:39:17 2015 -0700

----------------------------------------------------------------------
 clients/src/main/java/org/apache/kafka/clients/Metadata.java   | 6 +++++-
 .../src/test/java/org/apache/kafka/clients/MetadataTest.java   | 3 +++
 2 files changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kafka/blob/b46cb3b2/clients/src/main/java/org/apache/kafka/clients/Metadata.java
----------------------------------------------------------------------
diff --git a/clients/src/main/java/org/apache/kafka/clients/Metadata.java b/clients/src/main/java/org/apache/kafka/clients/Metadata.java
index 7d4ffa7..f2fca12 100644
--- a/clients/src/main/java/org/apache/kafka/clients/Metadata.java
+++ b/clients/src/main/java/org/apache/kafka/clients/Metadata.java
@@ -14,10 +14,12 @@ package org.apache.kafka.clients;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import org.apache.kafka.common.Cluster;
+import org.apache.kafka.common.Node;
 import org.apache.kafka.common.PartitionInfo;
 import org.apache.kafka.common.errors.TimeoutException;
 import org.slf4j.Logger;
@@ -237,11 +239,13 @@ public final class Metadata {
 
     private Cluster getClusterForCurrentTopics(Cluster cluster) {
         Collection<PartitionInfo> partitionInfos = new ArrayList<>();
+        List<Node> nodes = Collections.emptyList();
         if (cluster != null) {
             for (String topic : this.topics) {
                 partitionInfos.addAll(cluster.partitionsForTopic(topic));
             }
+            nodes = cluster.nodes();
         }
-        return new Cluster(cluster.nodes(), partitionInfos);
+        return new Cluster(nodes, partitionInfos);
     }
 }

http://git-wip-us.apache.org/repos/asf/kafka/blob/b46cb3b2/clients/src/test/java/org/apache/kafka/clients/MetadataTest.java
----------------------------------------------------------------------
diff --git a/clients/src/test/java/org/apache/kafka/clients/MetadataTest.java b/clients/src/test/java/org/apache/kafka/clients/MetadataTest.java
index c42c7bc..b7160a1 100644
--- a/clients/src/test/java/org/apache/kafka/clients/MetadataTest.java
+++ b/clients/src/test/java/org/apache/kafka/clients/MetadataTest.java
@@ -111,6 +111,9 @@ public class MetadataTest {
         assertEquals(100, metadata.timeToNextUpdate(1100));
         assertEquals(100, metadata.lastSuccessfulUpdate());
 
+        metadata.needMetadataForAllTopics(true);
+        metadata.update(null, time);
+        assertEquals(100, metadata.timeToNextUpdate(1000));
     }
 
     @Test