Address sonar issues in PAP 55/105355/3
authorJim Hahn <jrh3@att.com>
Tue, 7 Apr 2020 17:34:34 +0000 (13:34 -0400)
committerJim Hahn <jrh3@att.com>
Tue, 7 Apr 2020 17:41:05 +0000 (13:41 -0400)
Addressed the following sonar issues in PAP:
- do something with value returned by a method
- use computeIfAbsent; chose to disable the sonar for this,
  as it would obfuscate the code
- use RE2 instead of java.util Pattern

Issue-ID: POLICY-2305
Change-Id: If5495d04248211179cd37419cb20fe7d227ab59c
Signed-off-by: Jim Hahn <jrh3@att.com>
main/src/main/java/org/onap/policy/pap/main/comm/Publisher.java
main/src/main/java/org/onap/policy/pap/main/comm/TimerManager.java
main/src/main/java/org/onap/policy/pap/main/rest/SessionData.java

index 6d2d835..3fbaa99 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP PAP
  * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -103,7 +103,7 @@ public class Publisher<T> implements Runnable {
 
             if (stopNow) {
                 // unblock any other publisher threads
-                queue.offer(new QueueToken<>(null));
+                queue.add(new QueueToken<>(null));
                 break;
             }
 
index 0565e90..f64c269 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP PAP
  * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -303,6 +303,8 @@ public class TimerManager implements Runnable {
      * @throws InterruptedException if this thread is interrupted while sleeping
      */
     protected void sleep(long timeMs) throws InterruptedException {
-        stopper.await(timeMs, TimeUnit.MILLISECONDS);
+        if (stopper.await(timeMs, TimeUnit.MILLISECONDS)) {
+            logger.info("sleep finishing due to stop()");
+        }
     }
 }
index 22da539..0d8f703 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP PAP
  * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 
 package org.onap.policy.pap.main.rest;
 
+import com.google.re2j.Pattern;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -27,7 +28,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import org.apache.commons.lang3.tuple.Pair;
 import org.onap.policy.models.base.PfModelException;
@@ -347,7 +347,12 @@ public class SessionData {
      * @throws PfModelException if an error occurred
      */
     public List<PdpGroup> getActivePdpGroupsByPolicyType(ToscaPolicyTypeIdentifier type) throws PfModelException {
-        List<GroupData> data = type2groups.get(type);
+        /*
+         * Cannot use computeIfAbsent() because the enclosed code throws an unchecked
+         * exception and handling that would obfuscate the code too much, thus disabling
+         * the sonar.
+         */
+        List<GroupData> data = type2groups.get(type);   // NOSONAR
         if (data == null) {
             PdpGroupFilter filter = PdpGroupFilter.builder().policyTypeList(Collections.singletonList(type))
                             .groupState(PdpState.ACTIVE).build();