Fix potential NPE
[clamp.git] / src / main / java / org / onap / clamp / clds / client / req / policy / PolicyClient.java
index 7908896..1e423ff 100644 (file)
@@ -64,6 +64,7 @@ import org.springframework.stereotype.Component;
 @Component
 public class PolicyClient {
 
+    protected PolicyEngine policyEngine;
     protected static final String LOG_POLICY_PREFIX = "Response is ";
     protected static final EELFLogger logger = EELFManager.getInstance().getLogger(PolicyClient.class);
     protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
@@ -330,13 +331,17 @@ public class PolicyClient {
         } else {
             policyName = prop.getCurrentPolicyScopeAndFullPolicyName(policyNamePrefix);
         }
-        logger.info("policyName=" + policyName);
+        logger.info("Search in Policy Engine for policyName=" + policyName);
         configRequestParameters.setPolicyName(policyName);
         try {
             Collection<PolicyConfig> response = getPolicyEngine().getConfig(configRequestParameters);
             for (PolicyConfig policyConfig : response) {
-                Integer version = Integer.valueOf(policyConfig.getPolicyVersion());
-                versions.add(version);
+                if (policyConfig.getPolicyVersion() != null) {
+                    Integer version = Integer.valueOf(policyConfig.getPolicyVersion());
+                    versions.add(version);
+                } else {
+                    logger.warn("Policy version was null, unable to convert it to Integer");
+                }
             }
             Collections.sort(versions);
             logger.info("Policy versions.size()=" + versions.size());
@@ -352,10 +357,11 @@ public class PolicyClient {
      * 
      * @return A new policy engine
      */
-    private PolicyEngine getPolicyEngine() {
-        PolicyEngine policyEngine;
+    private synchronized PolicyEngine getPolicyEngine() {
         try {
-            policyEngine = new PolicyEngine(policyConfiguration.getProperties());
+            if (policyEngine == null) {
+                policyEngine = new PolicyEngine(policyConfiguration.getProperties());
+            }
         } catch (PolicyEngineException e) {
             throw new PolicyClientException("Exception when creating a new policy engine", e);
         }