From c713529a99bdb4b22ed4035c4d1b9bff05229cd0 Mon Sep 17 00:00:00 2001 From: Alex Heneveld Date: Thu, 9 Nov 2017 19:11:16 +0000 Subject: [PATCH] guard against possible NPE when rebinding legacy catalog items --- .../core/mgmt/rebind/BasicCatalogItemRebindSupport.java | 3 --- .../org/apache/brooklyn/core/typereg/BundleUpgradeParser.java | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/BasicCatalogItemRebindSupport.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/BasicCatalogItemRebindSupport.java index aa76d26888..ee2871c228 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/BasicCatalogItemRebindSupport.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/BasicCatalogItemRebindSupport.java @@ -18,15 +18,12 @@ */ package org.apache.brooklyn.core.mgmt.rebind; -import java.util.Set; - import org.apache.brooklyn.api.mgmt.rebind.RebindContext; import org.apache.brooklyn.api.mgmt.rebind.mementos.CatalogItemMemento; import org.apache.brooklyn.core.catalog.internal.CatalogItemDtoAbstract; import org.apache.brooklyn.core.typereg.BundleUpgradeParser.CatalogUpgrades; import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.core.flags.FlagUtils; -import org.apache.brooklyn.util.osgi.VersionedName; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/core/src/main/java/org/apache/brooklyn/core/typereg/BundleUpgradeParser.java b/core/src/main/java/org/apache/brooklyn/core/typereg/BundleUpgradeParser.java index 82b02b8bcb..d808c24f66 100644 --- a/core/src/main/java/org/apache/brooklyn/core/typereg/BundleUpgradeParser.java +++ b/core/src/main/java/org/apache/brooklyn/core/typereg/BundleUpgradeParser.java @@ -352,7 +352,8 @@ public static CatalogUpgrades getFromManagementContext(ManagementContext managem @Beta public static String getBundleUpgradedIfNecessary(ManagementContext mgmt, String vName) { - if (vName==null) return null; + // mgmt can be null in some edge cases, eg BasicCatalogItemRebindSupport.possiblyUpgradedBundle + if (vName==null || mgmt==null) return null; Maybe osgi = ((ManagementContextInternal)mgmt).getOsgiManager(); if (osgi.isAbsent()) { // ignore upgrades if not osgi