pnf service instantiation fix - IndexOutOfBoundsException 27/114127/2
authorLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Wed, 21 Oct 2020 17:15:14 +0000 (19:15 +0200)
committerLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Thu, 22 Oct 2020 16:31:24 +0000 (18:31 +0200)
Issue-ID: SO-3322
Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
Change-Id: I6c978cbe788281eac25fa7be6f4ff24c4bff9810
Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionTest.java

index d9ad245..7c4f735 100644 (file)
@@ -30,6 +30,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -1663,8 +1664,11 @@ public class WorkflowAction {
                 execution.setVariable(BBConstants.G_ISTOPLEVELFLOW, northBoundRequest.getIsToplevelflow());
             }
             List<OrchestrationFlow> flows = northBoundRequest.getOrchestrationFlowList();
-            if (flows == null)
+            if (flows == null) {
                 flows = new ArrayList<>();
+            } else {
+                flows.sort(Comparator.comparingInt(OrchestrationFlow::getSequenceNumber));
+            }
             for (OrchestrationFlow flow : flows) {
                 if (!flow.getFlowName().contains("BB") && !flow.getFlowName().contains("Activity")) {
                     List<OrchestrationFlow> macroQueryFlows =
index 53d1bea..50ff074 100644 (file)
@@ -3110,9 +3110,11 @@ public class WorkflowActionTest extends BaseTaskTest {
 
     private List<OrchestrationFlow> createFlowList(String... flowNames) {
         List<OrchestrationFlow> result = new ArrayList<>();
+        int sequenceNumber = 1;
         for (String flowName : flowNames) {
             OrchestrationFlow orchFlow = new OrchestrationFlow();
             orchFlow.setFlowName(flowName);
+            orchFlow.setSequenceNumber(sequenceNumber++);
             result.add(orchFlow);
         }
         return result;