This is an automated email from the ASF dual-hosted git repository. penghui pushed a commit to branch branch-2.9 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 6fd742139ddfed161ea0c76582b7dfdd4be7004e Author: feynmanlin <[email protected]> AuthorDate: Wed Jan 5 14:46:32 2022 +0800 Fix NPE when unloading namespace bundle (#13571) * Fix NPE when unloading namespace bundle (cherry picked from commit ec0a44058d249a7510bb3d05685b2ee5e0874eb6) --- .../apache/pulsar/broker/service/BrokerService.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java index cbe02c8..d37dfb6 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java @@ -830,15 +830,17 @@ public class BrokerService implements Closeable { // unload all namespace-bundles gracefully long closeTopicsStartTime = System.nanoTime(); Set<NamespaceBundle> serviceUnits = pulsar.getNamespaceService().getOwnedServiceUnits(); - serviceUnits.forEach(su -> { - if (su instanceof NamespaceBundle) { - try { - pulsar.getNamespaceService().unloadNamespaceBundle(su, 1, TimeUnit.MINUTES).get(); - } catch (Exception e) { - log.warn("Failed to unload namespace bundle {}", su, e); + if (serviceUnits != null) { + serviceUnits.forEach(su -> { + if (su instanceof NamespaceBundle) { + try { + pulsar.getNamespaceService().unloadNamespaceBundle(su, 1, TimeUnit.MINUTES).get(); + } catch (Exception e) { + log.warn("Failed to unload namespace bundle {}", su, e); + } } - } - }); + }); + } double closeTopicsTimeSeconds = TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - closeTopicsStartTime)) / 1000.0;
