X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2FComponentActivatorAbstractBase.java;h=0cd1612808b4a67e8c0eb38c0dec013e4090dee3;hp=969aa630a1519f712e24af8ef0e0cd0025022635;hb=da09b89e760719b3b5bb9f437fe3cf17726e547b;hpb=454f93d530edea269105cebd0020d0bf1aa75c79 diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ComponentActivatorAbstractBase.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ComponentActivatorAbstractBase.java index 969aa630a1..0cd1612808 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ComponentActivatorAbstractBase.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ComponentActivatorAbstractBase.java @@ -45,8 +45,8 @@ abstract public class ComponentActivatorAbstractBase implements Logger logger = LoggerFactory .getLogger(ComponentActivatorAbstractBase.class); private DependencyManager dm; - private ConcurrentMap, Component> dbInstances = (ConcurrentMap, Component>) new ConcurrentHashMap, Component>(); - private ConcurrentMap dbGlobalInstances = (ConcurrentMap) new ConcurrentHashMap(); + private ConcurrentMap, Component> dbInstances = new ConcurrentHashMap, Component>(); + private ConcurrentMap dbGlobalInstances = new ConcurrentHashMap(); /** * Method that should be overriden by the derived class for customization @@ -253,6 +253,11 @@ abstract public class ComponentActivatorAbstractBase implements containerName, imps[i]); Component c = this.dbInstances.get(key); if (c != null) { + if (c.getService() != null) { + c.invokeCallbackMethod(new Object[] { c.getService() }, "containerStop", + new Class[][] {{ Component.class}, {} }, + new Object[][] { {c}, {} }); + } // Now remove the component from dependency manager, // which will implicitely stop it first this.dm.remove(c);