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=99a38ca43a5be68fd3c9bad328e20ab98d0578a4;hb=e2607370f5ac443a5a2f1f00f693f82a0b57161d;hpb=03abf047ba966c53f4901d36ae5198156d66dc05 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 99a38ca43a..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 } @@ -54,25 +52,25 @@ public abstract class AbstractConsumer implements Consumer, BundleActivator,Serv return Collections.emptySet(); } - + @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; } - + return null; } - + @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); } }