From af0b866abcffbea20225aff81c3e5ead8bf166dd Mon Sep 17 00:00:00 2001 From: rdhabalia Date: Fri, 14 Mar 2025 11:45:25 -0700 Subject: [PATCH] [fix][broker] Fix NPE while publishing Metadata-Event with not init producer --- .../pulsar/broker/service/PulsarMetadataEventSynchronizer.java | 2 ++ 1 file changed, 2 insertions(+) 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: {}",