Fall through only if loader fails with the available catalog items.

https://github.com/apache/brooklyn-server/pull/338#discussion_r94751531


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/68b94ced
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/68b94ced
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/68b94ced

Branch: refs/heads/master
Commit: 68b94ced5af0a18be08277e9bdb5aff4696a4e80
Parents: 1e5ca51
Author: Geoff Macartney <[email protected]>
Authored: Tue Feb 21 10:17:42 2017 +0000
Committer: Geoff Macartney <[email protected]>
Committed: Thu Apr 20 11:20:36 2017 +0100

----------------------------------------------------------------------
 .../brooklyn/core/mgmt/rebind/RebindIteration.java      | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/68b94ced/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
index fa0a3af..3e75700 100644
--- 
a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
+++ 
b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/RebindIteration.java
@@ -952,12 +952,16 @@ public abstract class RebindIteration {
             List<String> idsFromReboundCatalog = MutableList.of();
             if (catalogItemIds != null && !catalogItemIds.isEmpty()) {
                 findCatalogIdsInReboundCatalog(bType, catalogItemIds, 
contextSuchAsId, idsFromReboundCatalog);
-                if (idsFromReboundCatalog.size() == catalogItemIds.size()) {
+                if (idsFromReboundCatalog.size() != catalogItemIds.size()) {
+                    LOG.warn("Unable to load all catalog items "+ 
Iterables.toString(catalogItemIds)
+                        +" for "+contextSuchAsId + " (" + 
bType.getSimpleName()+"); attempting load nevertheless");
+                }
+                try {
                     BrooklynClassLoadingContext loader = 
CatalogUtils.newClassLoadingContextForCatalogItems(managementContext, 
idsFromReboundCatalog);
                     return new LoadedClass<T>(loader.loadClass(jType, bType), 
idsFromReboundCatalog);
-                } else {
-                    LOG.warn("Unable to load all catalog items "+ 
Iterables.toString(catalogItemIds) +" for "+contextSuchAsId
-                            +" ("+bType.getSimpleName()+"); will try default 
class loader");
+                } catch (Exception e) {
+                    Exceptions.propagateIfFatal(e);
+                    LOG.warn("Unable to load "+jType+" using loader; will try 
reflections");
                 }
             }
             

Reply via email to