Fix issue where null variable causes task to not 11/85911/1
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Mon, 22 Apr 2019 00:42:19 +0000 (20:42 -0400)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Mon, 22 Apr 2019 00:42:30 +0000 (20:42 -0400)
fixed formatting of newly added files
Fix issue where null variable causes task to not complete

Change-Id: If2361a0834220c2e2738917a2e5bf9b012570929
Issue-ID: SO-1806
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/inventory/create/CreateInventoryTask.java
adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateInventoryTaskTest.java [new file with mode: 0644]

index add3aac..2bddd43 100644 (file)
@@ -20,7 +20,6 @@
 
 package org.onap.so.adapters.inventory.create;
 
-import java.io.IOException;
 import org.camunda.bpm.client.task.ExternalTask;
 import org.camunda.bpm.client.task.ExternalTaskService;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
@@ -30,7 +29,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
@@ -48,17 +46,16 @@ public class CreateInventoryTask {
     public Environment env;
 
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
+        setupMDC(externalTask);
         boolean success = true;
         String auditInventoryString = externalTask.getVariable("auditInventoryResult");
-        GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
         AAIObjectAuditList auditInventory = null;
         try {
+            GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
             auditInventory = objectMapper.getMapper().readValue(auditInventoryString, AAIObjectAuditList.class);
-        } catch (IOException e1) {
-            success = false;
+        } catch (Exception e) {
+            logger.error("Error Parsing Audit Results", e);
         }
-        setupMDC(externalTask);
-
         if (auditInventory != null) {
             try {
                 logger.info("Executing External Task Create Inventory, Retry Number: {} \n {}", auditInventory,
@@ -97,9 +94,13 @@ public class CreateInventoryTask {
     }
 
     private void setupMDC(ExternalTask externalTask) {
-        String msoRequestId = (String) externalTask.getVariable("mso-request-id");
-        if (msoRequestId != null && !msoRequestId.isEmpty())
-            MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
+        try {
+            String msoRequestId = (String) externalTask.getVariable("mso-request-id");
+            if (msoRequestId != null && !msoRequestId.isEmpty())
+                MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
+        } catch (Exception e) {
+            logger.error("Error in setting up MDC", e);
+        }
     }
 
     protected long calculateRetryDelay(int currentRetries) {
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateInventoryTaskTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/inventory/create/CreateInventoryTaskTest.java
new file mode 100644 (file)
index 0000000..03622db
--- /dev/null
@@ -0,0 +1,36 @@
+package org.onap.so.adapters.inventory.create;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+import org.camunda.bpm.client.task.ExternalTask;
+import org.camunda.bpm.client.task.ExternalTaskService;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+public class CreateInventoryTaskTest {
+
+    @Mock
+    ExternalTask externalTask;
+
+    @Mock
+    ExternalTaskService externalTaskService;
+
+    @InjectMocks
+    CreateInventoryTask inventoryTask;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void test_Runtime_Parse_Exception() {
+        doReturn(null).when(externalTask).getVariable("auditInventoryResult");
+        inventoryTask.executeExternalTask(externalTask, externalTaskService);
+        Mockito.verify(externalTaskService, times(1)).handleBpmnError(externalTask, "AAIInventoryFailure");
+    }
+}