diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/PulsarMetadataEventSynchronizer.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/PulsarMetadataEventSynchronizer.java index 8b2ebf200537e..20d334a3acc0d 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/PulsarMetadataEventSynchronizer.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/PulsarMetadataEventSynchronizer.java @@ -120,6 +120,7 @@ private void publishAsync(MetadataEvent event, CompletableFuture future) { if (!isProducerStarted()) { log.info("Producer is not started on {}, failed to publish {}", topicName, event); future.completeExceptionally(new IllegalStateException("producer is not started yet")); + return; } producer.newMessage().value(event).sendAsync().thenAccept(__ -> { log.info("successfully published metadata change event {}", event); @@ -135,6 +136,7 @@ private void publishAsync(MetadataEvent event, CompletableFuture future) { private void startProducer() { if (isClosingOrClosed()) { log.info("[{}] Skip to start new producer because the synchronizer is closed", topicName); + return; } if (producer != null) { log.error("[{}] Failed to start the producer because the producer has been set, state: {}",