Handle null case in `addCalculatedCapabilitiesWithPropertiesToComponent` 75/106375/3
authorChris André <chris.andre@yoppworks.com>
Tue, 21 Apr 2020 16:25:29 +0000 (12:25 -0400)
committerOjas Dubey <Ojas.Dubey@amdocs.com>
Wed, 6 May 2020 05:40:35 +0000 (05:40 +0000)
- Change code to handle a null value for `groupDefinitions` as if it was an empty List

Issue-ID: SDC-2910
Signed-off-by: Chris Andre <chris.andre@yoppworks.com>
Change-Id: I5fca0ab76886e5f6a73a8f05ec35d38848f96dd8

catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/GroupBusinessLogic.java

index 417380b..e0bf727 100644 (file)
@@ -23,6 +23,7 @@
 package org.openecomp.sdc.be.components.impl;
 
 import fj.data.Either;
+import java.util.Vector;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.io.FilenameUtils;
@@ -1181,12 +1182,20 @@ public class GroupBusinessLogic extends BaseBusinessLogic {
         }
     }
 
-    private void addCalculatedCapabilitiesWithPropertiesToComponent(Component component, final List<GroupDefinition> groupDefinitions, boolean fromCsar) {
-        groupDefinitions.forEach(GroupDefinition::updateEmptyCapabilitiesOwnerFields);
-        StorageOperationStatus status = groupsOperation.addCalculatedCapabilitiesWithProperties(component.getUniqueId(),
-                extractCapabilitiesFromGroups(groupDefinitions), extractCapabilityPropertiesFromGroups(groupDefinitions, fromCsar));
-        if(status != StorageOperationStatus.OK){
-            log.error("#addCalculatedCapabilitiesWithPropertiesToComponent - failed to add the groups' calculated capabilities with the properties to the component {}. ", component.getUniqueId());
+    private void addCalculatedCapabilitiesWithPropertiesToComponent(Component component,
+        final List<GroupDefinition> groupDefinitions, boolean fromCsar) {
+        final List<GroupDefinition> nonNullGroupDefinitions =
+            (groupDefinitions == null) ? Collections.emptyList() : groupDefinitions;
+
+        nonNullGroupDefinitions.forEach(GroupDefinition::updateEmptyCapabilitiesOwnerFields);
+        StorageOperationStatus status = groupsOperation.addCalculatedCapabilitiesWithProperties(
+            component.getUniqueId(),
+            extractCapabilitiesFromGroups(nonNullGroupDefinitions),
+            extractCapabilityPropertiesFromGroups(nonNullGroupDefinitions, fromCsar));
+        if (status != StorageOperationStatus.OK) {
+            log.error(
+                "#addCalculatedCapabilitiesWithPropertiesToComponent - failed to add the groups' calculated capabilities with the properties to the component {}. ",
+                component.getUniqueId());
             rollbackWithException(componentsUtils.convertFromStorageResponse(status));
         }
     }