Fix error in upgrading instance version 20/129920/2
authorMichaelMorris <michael.morris@est.tech>
Thu, 14 Jul 2022 09:27:14 +0000 (10:27 +0100)
committerVasyl Razinkov <vasyl.razinkov@est.tech>
Thu, 14 Jul 2022 16:58:46 +0000 (16:58 +0000)
Exception thrown when upgrading the version of a component instance in a component composition

Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-4096
Change-Id: Ice98ab72f9bb69d3fa088a94e4c7c3f903de1f99

catalog-be/src/main/java/org/openecomp/sdc/be/components/merge/instance/ComponentInstanceInterfacesMerge.java

index 6f5dd03..ecbeb21 100644 (file)
@@ -93,10 +93,10 @@ public class ComponentInstanceInterfacesMerge implements ComponentInstanceMergeI
                                     mergeOperationInputDefinitions(oldOperationDef.getInputs(), newOperationDefKeyValue.getInputs(),
                                         originalOperationDef.getInputs());
                                 }
-                                if (!originalOperationDef.getImplementation().equals(oldOperationDef.getImplementation())) {
+                                if (originalValueOverwritten(originalOperationDef.getImplementation(), oldOperationDef.getImplementation()) ) {
                                     newOperationDefKeyValue.setImplementation(oldOperationDef.getImplementation());
                                 }
-                                if (!originalOperationDef.getDescription().equals(oldOperationDef.getDescription())) {
+                                if (originalValueOverwritten(originalOperationDef.getDescription(), oldOperationDef.getDescription())) {
                                     newOperationDefKeyValue.setDescription(oldOperationDef.getDescription());
                                 }
                                 newInterfaceDefOperationMap.put(newOperationDefKey, newOperationDefKeyValue);
@@ -106,6 +106,13 @@ public class ComponentInstanceInterfacesMerge implements ComponentInstanceMergeI
         StorageOperationStatus updateStatus = toscaOperationFacade.updateComponentInstanceInterfaces(currentComponent, instanceId);
         return componentsUtils.convertFromStorageResponse(updateStatus);
     }
+    
+    private <T> boolean originalValueOverwritten(final T originalValue, final T oldValue) {
+        if (originalValue == null) {
+            return oldValue != null;
+        }
+        return !originalValue.equals(oldValue);
+    }
 
     private void mergeOperationInputDefinitions(ListDataDefinition<OperationInputDefinition> oldInputs,
                                                 ListDataDefinition<OperationInputDefinition> newInputs,