Added null check for latestStack to prevent crash 16/94016/3
authorOleksandr Moliavko <o.moliavko@samsung.com>
Wed, 21 Aug 2019 06:55:13 +0000 (09:55 +0300)
committerLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Wed, 21 Aug 2019 15:48:00 +0000 (15:48 +0000)
at method calls; moved latestStack declaration
according to comment by maintainer

Issue-ID: SO-1841
Signed-off-by: Oleksandr Moliavko <o.moliavko@samsung.com>
Change-Id: Ic4bfeca94103f6c902808de39df752569580c066

adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoHeatUtils.java

index 6565db7..b5a97f7 100644 (file)
@@ -327,20 +327,24 @@ public class MsoHeatUtils extends MsoCommonUtils implements VduPlugin {
                 Integer.parseInt(this.environment.getProperty(pollingMultiplierProp, POLLING_MULTIPLIER_DEFAULT));
         int numberOfPollingAttempts = Math.floorDiv((timeoutMinutes * pollingMultiplier), pollingFrequency);
         Heat heatClient = getHeatClient(cloudSiteId, tenantId);
-        Stack latestStack = null;
         while (true) {
-            latestStack = queryHeatStack(heatClient, stack.getStackName() + "/" + stack.getId());
-            statusHandler.updateStackStatus(latestStack);
-            logger.debug("Polling: {} ({})", latestStack.getStackStatus(), latestStack.getStackName());
-            if (stackStatus.equals(latestStack.getStackStatus())) {
-                if (numberOfPollingAttempts <= 0) {
-                    logger.error("Polling of stack timed out with Status: {}", latestStack.getStackStatus());
+            Stack latestStack = queryHeatStack(heatClient, stack.getStackName() + "/" + stack.getId());
+            if (latestStack != null) {
+                statusHandler.updateStackStatus(latestStack);
+                logger.debug("Polling: {} ({})", latestStack.getStackStatus(), latestStack.getStackName());
+                if (stackStatus.equals(latestStack.getStackStatus())) {
+                    if (numberOfPollingAttempts <= 0) {
+                        logger.error("Polling of stack timed out with Status: {}", latestStack.getStackStatus());
+                        return latestStack;
+                    }
+                    sleep(pollingFrequency * 1000L);
+                    numberOfPollingAttempts -= 1;
+                } else {
                     return latestStack;
                 }
-                sleep(pollingFrequency * 1000L);
-                numberOfPollingAttempts -= 1;
             } else {
-                return latestStack;
+                logger.error("latestStack is null");
+                return null;
             }
         }
     }