X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2Fapi%2FAbstractConsumer.java;h=46e9cdcd718917c4f26f33647eb1bf197a477d3f;hp=c14d5a679cf8c2f8bcb2172f520273fac160ea50;hb=e2607370f5ac443a5a2f1f00f693f82a0b57161d;hpb=48814d6a264b8f13e5db1422336d9ef25cb05fa9 diff --git a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/AbstractConsumer.java b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/AbstractConsumer.java index c14d5a679c..46e9cdcd71 100644 --- a/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/AbstractConsumer.java +++ b/opendaylight/md-sal/sal-dom-api/src/main/java/org/opendaylight/controller/sal/core/api/AbstractConsumer.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.sal.core.api; import java.util.Collection; import java.util.Collections; - import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; @@ -18,34 +17,33 @@ import org.osgi.util.tracker.ServiceTrackerCustomizer; public abstract class AbstractConsumer implements Consumer, BundleActivator,ServiceTrackerCustomizer { - - - private BundleContext context; private ServiceTracker tracker; private Broker broker; @Override - public final void start(BundleContext context) throws Exception { - this.context = context; - this.startImpl(context); - tracker = new ServiceTracker<>(context, Broker.class, this); + public final void start(final BundleContext bundleContext) throws Exception { + this.context = bundleContext; + this.startImpl(bundleContext); + tracker = new ServiceTracker<>(bundleContext, Broker.class, this); tracker.open(); } - - @Override - public final void stop(BundleContext context) throws Exception { - stopImpl(context); + public final void stop(final BundleContext bundleContext) throws Exception { + stopImpl(bundleContext); broker = null; - tracker.close(); + + if (tracker != null) { + tracker.close(); + } } - protected void startImpl(BundleContext context) { + protected void startImpl(final BundleContext bundleContext) { // NOOP } - protected void stopImpl(BundleContext context) { + + protected void stopImpl(final BundleContext bundleContext) { // NOOP } @@ -56,8 +54,8 @@ public abstract class AbstractConsumer implements Consumer, BundleActivator,Serv @Override - public Broker addingService(ServiceReference reference) { - if(broker == null) { + public Broker addingService(final ServiceReference reference) { + if (broker == null && context != null) { broker = context.getService(reference); broker.registerConsumer(this, context); return broker; @@ -67,12 +65,12 @@ public abstract class AbstractConsumer implements Consumer, BundleActivator,Serv } @Override - public void modifiedService(ServiceReference reference, Broker service) { + public void modifiedService(final ServiceReference reference, final Broker service) { // NOOP } @Override - public void removedService(ServiceReference reference, Broker service) { + public void removedService(final ServiceReference reference, final Broker service) { stopImpl(context); } }