From 0c164d6d640e16dab0828d7c9d549816b7dacb1d Mon Sep 17 00:00:00 2001 From: jqin Date: Tue, 24 Mar 2015 01:17:05 -0700 Subject: [PATCH] Patch for KAFKA-2042. Do not update metadata for empty topic set in new producer --- .../main/java/org/apache/kafka/clients/NetworkClient.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java b/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java index f429502..2d4f89c 100644 --- a/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java +++ b/clients/src/main/java/org/apache/kafka/clients/NetworkClient.java @@ -469,11 +469,14 @@ public class NetworkClient implements KafkaClient { if (connectionStates.isConnected(node.id()) && inFlightRequests.canSendMore(node.id())) { Set topics = metadata.topics(); - this.metadataFetchInProgress = true; - ClientRequest metadataRequest = metadataRequest(now, node.id(), topics); - log.debug("Sending metadata request {} to node {}", metadataRequest, node.id()); - this.selector.send(metadataRequest.request()); - this.inFlightRequests.add(metadataRequest); + // Only update metadata if topics is not empty + if (!topics.isEmpty()) { + this.metadataFetchInProgress = true; + ClientRequest metadataRequest = metadataRequest(now, node.id(), topics); + log.debug("Sending metadata request {} to node {}", metadataRequest, node.id()); + this.selector.send(metadataRequest.request()); + this.inFlightRequests.add(metadataRequest); + } } else if (connectionStates.canConnect(node.id(), now)) { // we don't have a connection to this node right now, make one log.debug("Initialize connection to node {} for sending metadata request", node.id()); -- 1.8.3.4 (Apple Git-47)