BUG-2836 Workaround 95/16695/1
authorMaros Marsalek <mmarsale@cisco.com>
Tue, 17 Mar 2015 13:33:09 +0000 (14:33 +0100)
committerMaros Marsalek <mmarsale@cisco.com>
Tue, 17 Mar 2015 13:33:22 +0000 (14:33 +0100)
Change-Id: Ibcec955562ed72946100512d8f1db294c2cb4ccd
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureConfigPusher.java

index 7b90580a660cac0a03a4b90c0c0f8d40a1d2eb68..2d3a011469e277ed5d72ddf63a5799f88d188352 100644 (file)
@@ -71,11 +71,16 @@ public class FeatureConfigPusher {
     private LinkedHashSet<FeatureConfigSnapshotHolder> pushConfig(final Feature feature) throws Exception, InterruptedException {
         LinkedHashSet<FeatureConfigSnapshotHolder> configs = new LinkedHashSet<FeatureConfigSnapshotHolder>();
         if(isInstalled(feature)) {
-            ChildAwareFeatureWrapper wrappedFeature = new ChildAwareFeatureWrapper(feature,featuresService);
-            configs = wrappedFeature.getFeatureConfigSnapshotHolders();
-            if(!configs.isEmpty()) {
-                configs = pushConfig(configs);
-                feature2configs.putAll(feature, configs);
+            // FIXME Workaround for BUG-2836, features service returns null for feature: standard-condition-webconsole_0_0_0, 3.0.1
+            if(featuresService.getFeature(feature.getName(), feature.getVersion()) == null) {
+                LOG.warn("Feature: {}, {} is missing from features service. Skipping", feature.getName(), feature.getVersion());
+            } else {
+                ChildAwareFeatureWrapper wrappedFeature = new ChildAwareFeatureWrapper(feature, featuresService);
+                configs = wrappedFeature.getFeatureConfigSnapshotHolders();
+                if (!configs.isEmpty()) {
+                    configs = pushConfig(configs);
+                    feature2configs.putAll(feature, configs);
+                }
             }
         }
         return configs;