sonar fix

- improving logging
- avoid null pointer exception
- sonar bug related to return statement

Issue-ID: SO-3428
Signed-off-by: Lukasz Muszkieta <lukasz.muszkieta@nokia.com>
Change-Id: I7f80fbbb1ea1db19d893599691a9b582ed3cf14d
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/NvfmAdapterUtils.java b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/NvfmAdapterUtils.java
index a46ad8f..367d8b2 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/NvfmAdapterUtils.java
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/NvfmAdapterUtils.java
@@ -27,9 +27,13 @@
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 
-public class NvfmAdapterUtils {
+public final class NvfmAdapterUtils {
     private static Logger logger = getLogger(NvfmAdapterUtils.class);
 
+    private NvfmAdapterUtils() {
+        throw new IllegalStateException("Utility class");
+    }
+
     public static JsonObject child(final JsonObject parent, final String name) {
         return childElement(parent, name).getAsJsonObject();
     }
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/EtsiPackageProvider.java b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/EtsiPackageProvider.java
index c5164c1..ec46af4 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/EtsiPackageProvider.java
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/EtsiPackageProvider.java
@@ -63,13 +63,13 @@
     }
 
     private String getVnfNodeProperty(final String csarId, final String propertyName) {
-        logger.debug("Getting " + propertyName + " from " + csarId);
+        logger.debug("Getting {} from {}", propertyName, csarId);
         final byte[] onapPackage = getPackage(csarId);
 
         try {
             final String vnfdLocation = getVnfdLocation(new ByteArrayInputStream(onapPackage));
             final String onapVnfdContent = getFileInZip(new ByteArrayInputStream(onapPackage), vnfdLocation).toString();
-            logger.debug("VNFD CONTENTS: " + onapVnfdContent);
+            logger.debug("VNFD CONTENTS: {}", onapVnfdContent);
             final JsonObject root = new Gson().toJsonTree(new Yaml().load(onapVnfdContent)).getAsJsonObject();
 
             final JsonObject topologyTemplates = child(root, "topology_template");
@@ -79,14 +79,14 @@
                 String propertyValue = null;
                 if ("tosca.nodes.nfv.VNF".equals(type)) {
                     final JsonObject properties = child(child, "properties");
-                    logger.debug("properties: " + properties.toString());
-
+                    logger.debug("properties: {}", properties);
                     propertyValue = properties.get(propertyName).getAsJsonPrimitive().getAsString();
+                    if (propertyValue == null) {
+                        propertyValue = getValueFromNodeTypeDefinition(root, type, propertyName);
+                    }
+                    return propertyValue;
                 }
-                if (propertyValue == null) {
-                    propertyValue = getValueFromNodeTypeDefinition(root, type, propertyName);
-                }
-                return propertyValue;
+
             }
 
         } catch (final Exception e) {
@@ -102,10 +102,10 @@
 
         if ("tosca.nodes.nfv.VNF".equals(childElement(nodeType, "derived_from").getAsString())) {
             final JsonObject properties = child(nodeType, "properties");
-            logger.debug("properties: " + properties.toString());
+            logger.debug("properties: {}", properties);
             final JsonObject property = child(properties, propertyName);
-            logger.debug("property: " + property.toString());
-            logger.debug("property default: " + childElement(property, "default").toString());
+            logger.debug("property: {}", property);
+            logger.debug("property default: {}", childElement(property, "default"));
             return childElement(property, "default").getAsJsonPrimitive().getAsString();
         }
         return null;
diff --git a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/vnfm/VnfmServiceProviderImpl.java b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/vnfm/VnfmServiceProviderImpl.java
index 6ad5c16..6e0978a 100644
--- a/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/vnfm/VnfmServiceProviderImpl.java
+++ b/adapters/etsi-sol003-adapter/etsi-sol003-lcm/etsi-sol003-lcm-adapter/src/main/java/org/onap/so/adapters/etsisol003adapter/lcm/extclients/vnfm/VnfmServiceProviderImpl.java
@@ -40,10 +40,14 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import com.google.common.base.Optional;
+import java.util.List;
 
 @Service
 public class VnfmServiceProviderImpl implements VnfmServiceProvider {
     private static final Logger logger = LoggerFactory.getLogger(VnfmServiceProviderImpl.class);
+    private static final String MESSAGE_RESULTED_IN_EXCEPTION = " resulted in exception";
+    private static final String MESSAGE_REQUEST = ", request: ";
+    private static final String MESSAGE_TERMINATE_REQUEST_TO = "Terminate request to ";
 
     private final VnfmServiceProviderConfiguration vnfmServiceProviderConfiguration;
     private final VnfmUrlProvider urlProvider;
@@ -63,25 +67,24 @@
     @Override
     public String instantiateVnf(final EsrVnfm vnfm, final String vnfSelfLink,
             final InstantiateVnfRequest instantiateVnfRequest) {
-        logger.debug("Sending instantiate request " + instantiateVnfRequest + " to : " + vnfSelfLink);
-
+        logger.debug("Sending instantiate request {} to : {}", instantiateVnfRequest, vnfSelfLink);
         ResponseEntity<Void> response = null;
         try {
             response = getHttpServiceProvider(vnfm).postHttpRequest(instantiateVnfRequest, vnfSelfLink + "/instantiate",
                     Void.class);
         } catch (final Exception exception) {
             final String errorMessage =
-                    "Instantiate request to " + vnfSelfLink + " resulted in exception" + instantiateVnfRequest;
-            logger.error(errorMessage, exception);
+                    "Instantiate request to " + vnfSelfLink + MESSAGE_RESULTED_IN_EXCEPTION + instantiateVnfRequest;
+            logger.error(errorMessage);
             throw new VnfmRequestFailureException(errorMessage, exception);
         }
         if (response.getStatusCode() != HttpStatus.ACCEPTED) {
             final String errorMessage = "Instantiate request to " + vnfSelfLink + " returned status code: "
-                    + response.getStatusCode() + ", request: " + instantiateVnfRequest;
+                    + response.getStatusCode() + MESSAGE_REQUEST + instantiateVnfRequest;
             logger.error(errorMessage);
             throw new VnfmRequestFailureException(errorMessage);
         }
-        final String locationHeader = response.getHeaders().get("Location").iterator().next();
+        String locationHeader = getLocationHeader(response);
         return locationHeader.substring(locationHeader.lastIndexOf("/") + 1);
     }
 
@@ -96,13 +99,13 @@
             logger.info("Subscribing for notifications response {}", response);
         } catch (final Exception exception) {
             final String errorMessage =
-                    "Subscription to VNFM " + vnfm.getVnfmId() + " resulted in exception" + subscriptionRequest;
-            logger.error(errorMessage, exception);
+                    "Subscription to VNFM " + vnfm.getVnfmId() + MESSAGE_RESULTED_IN_EXCEPTION + subscriptionRequest;
+            logger.error(errorMessage);
             throw new VnfmRequestFailureException(errorMessage, exception);
         }
         if (response.getStatusCode() != HttpStatus.CREATED) {
             final String errorMessage = "Subscription to VNFM " + vnfm.getVnfmId() + " returned status code: "
-                    + response.getStatusCode() + ", request: " + subscriptionRequest;
+                    + response.getStatusCode() + MESSAGE_REQUEST + subscriptionRequest;
             logger.error(errorMessage);
             throw new VnfmRequestFailureException(errorMessage);
         }
@@ -112,8 +115,7 @@
     @Override
     public String terminateVnf(final EsrVnfm vnfm, final String vnfSelfLink,
             final TerminateVnfRequest terminateVnfRequest) {
-        logger.debug("Sending terminate request " + terminateVnfRequest + " to : " + vnfSelfLink);
-
+        logger.debug("Sending terminate request {} to : {}", terminateVnfRequest, vnfSelfLink);
         ResponseEntity<Void> response = null;
         try {
             response = getHttpServiceProvider(vnfm).postHttpRequest(terminateVnfRequest, vnfSelfLink + "/terminate",
@@ -124,26 +126,26 @@
                 if (vnf.getInstantiationState().equals(InstantiationStateEnum.NOT_INSTANTIATED)) {
                     return JobManager.ALREADY_COMPLETED_OPERATION_ID;
                 } else {
-                    final String errorMessage =
-                            "Terminate request to " + vnfSelfLink + " resulted in exception" + terminateVnfRequest;
+                    final String errorMessage = MESSAGE_TERMINATE_REQUEST_TO + vnfSelfLink
+                            + MESSAGE_RESULTED_IN_EXCEPTION + terminateVnfRequest;
                     logger.error(errorMessage, restProcessingException);
                     throw new VnfmRequestFailureException(errorMessage, restProcessingException);
                 }
             }
         } catch (final Exception exception) {
             final String errorMessage =
-                    "Terminate request to " + vnfSelfLink + " resulted in exception" + terminateVnfRequest;
-            logger.error(errorMessage, exception);
+                    MESSAGE_TERMINATE_REQUEST_TO + vnfSelfLink + MESSAGE_RESULTED_IN_EXCEPTION + terminateVnfRequest;
+            logger.error(errorMessage);
             throw new VnfmRequestFailureException(errorMessage, exception);
         }
         checkIfResponseIsAcceptable(response, vnfSelfLink, terminateVnfRequest);
-        final String locationHeader = response.getHeaders().get("Location").iterator().next();
+        String locationHeader = getLocationHeader(response);
         return locationHeader.substring(locationHeader.lastIndexOf("/") + 1);
     }
 
     @Override
     public void deleteVnf(final EsrVnfm vnfm, final String vnfSelfLink) {
-        logger.debug("Sending delete request to : " + vnfSelfLink);
+        logger.debug("Sending delete request to : {}", vnfSelfLink);
         final ResponseEntity<Void> response = getHttpServiceProvider(vnfm).deleteHttpRequest(vnfSelfLink, Void.class);
         if (response.getStatusCode() != HttpStatus.NO_CONTENT) {
             throw new VnfmRequestFailureException(
@@ -165,8 +167,8 @@
             return getHttpServiceProvider(vnfm).post(createVnfRequest, url, InlineResponse201.class);
         } catch (final Exception exception) {
             final String errorMessage =
-                    "Create request to vnfm:" + vnfm.getVnfmId() + " resulted in exception" + createVnfRequest;
-            logger.error(errorMessage, exception);
+                    "Create request to vnfm:" + vnfm.getVnfmId() + MESSAGE_RESULTED_IN_EXCEPTION + createVnfRequest;
+            logger.error(errorMessage);
             throw new VnfmRequestFailureException(errorMessage, exception);
         }
     }
@@ -174,14 +176,14 @@
     private void checkIfResponseIsAcceptable(final ResponseEntity<Void> response, final String vnfSelfLink,
             final TerminateVnfRequest terminateVnfRequest) {
         if (response == null) {
-            final String errorMessage =
-                    "Terminate request to " + vnfSelfLink + ", response is null, " + "request: " + terminateVnfRequest;
+            final String errorMessage = MESSAGE_TERMINATE_REQUEST_TO + vnfSelfLink + ", response is null, "
+                    + "request: " + terminateVnfRequest;
             logger.error(errorMessage);
             throw new VnfmRequestFailureException(errorMessage);
         }
         if (response.getStatusCode() != HttpStatus.ACCEPTED) {
-            final String errorMessage = "Terminate request to " + vnfSelfLink + ", returned status code: "
-                    + response.getStatusCode() + ", request: " + terminateVnfRequest;
+            final String errorMessage = MESSAGE_TERMINATE_REQUEST_TO + vnfSelfLink + ", returned status code: "
+                    + response.getStatusCode() + MESSAGE_REQUEST + terminateVnfRequest;
             logger.error(errorMessage);
             throw new VnfmRequestFailureException(errorMessage);
         }
@@ -191,4 +193,11 @@
         return vnfmServiceProviderConfiguration.getHttpRestServiceProvider(vnfm);
     }
 
+    private String getLocationHeader(ResponseEntity<Void> response) {
+        List<String> headers = response.getHeaders().get("Location");
+        if ((headers == null) || (headers.isEmpty())) {
+            throw new VnfmRequestFailureException("No headers found in response");
+        }
+        return headers.iterator().next();
+    }
 }