X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-persister-feature-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfigpusherfeature%2Finternal%2FFeatureServiceCustomizer.java;fp=opendaylight%2Fconfig%2Fconfig-persister-feature-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfigpusherfeature%2Finternal%2FFeatureServiceCustomizer.java;h=68ae3d31cbafd2776cfa17fd645f14e685ac63e4;hb=6602310b78b5bf54899456e2efa867d116731267;hp=0320ea2743c6adbedbc4239b1bf4034b18273386;hpb=677caabe6a1144ab43dd231fcea7037a5cb4bb64;p=controller.git diff --git a/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java b/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java index 0320ea2743..68ae3d31cb 100644 --- a/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java +++ b/opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java @@ -9,7 +9,9 @@ package org.opendaylight.controller.configpusherfeature.internal; import com.google.common.base.Optional; import com.google.common.collect.Sets; + import java.util.Set; + import org.apache.karaf.features.Feature; import org.apache.karaf.features.FeaturesListener; import org.apache.karaf.features.FeaturesService; @@ -19,8 +21,11 @@ import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.osgi.framework.ServiceRegistration; import org.osgi.util.tracker.ServiceTrackerCustomizer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class FeatureServiceCustomizer implements ServiceTrackerCustomizer, AutoCloseable { + private static final Logger LOG = LoggerFactory.getLogger(FeatureServiceCustomizer.class); private ConfigPusher configPusher = null; private ServiceRegistration registration; @@ -34,10 +39,14 @@ public class FeatureServiceCustomizer implements ServiceTrackerCustomizer currentPersister = XmlFileStorageAdapter.getInstance(); - if(XmlFileStorageAdapter.getInstance().isPresent()) { + if (XmlFileStorageAdapter.getInstance().isPresent()) { final Set installedFeatureIds = Sets.newHashSet(); - for (final Feature installedFeature : featureService.listInstalledFeatures()) { - installedFeatureIds.add(installedFeature.getId()); + try { + for (final Feature installedFeature : featureService.listInstalledFeatures()) { + installedFeatureIds.add(installedFeature.getId()); + } + } catch (final Exception e) { + LOG.error("Error listing installed features", e); } currentPersister.get().setFeaturesService(() -> installedFeatureIds); @@ -49,19 +58,19 @@ public class FeatureServiceCustomizer implements ServiceTrackerCustomizer reference, - final FeaturesService service) { + final FeaturesService service) { // we don't care if the properties change } @Override public void removedService(final ServiceReference reference, - final FeaturesService service) { + final FeaturesService service) { close(); } @Override public void close() { - if(registration != null) { + if (registration != null) { registration.unregister(); registration = null; }