From b6977d2f7ce64ece732ac1a1a0525dac972d7ccf Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Wed, 17 Feb 2021 15:23:38 -0500 Subject: Fix sonars in apex-pdp Addressed the following issues: - initialize mocks before use - use parameterized queries - Random() is not secure - provide parameterized type for generics - unused imports - constructor visibility - use compute() instead of containsKey()/put() - make final fields static - rename constants to all upper case - no assert() in Thread.run() methods - nested try - nested if/else - too many break/continue - use try-with-resources - repeatable annotations - overlapping characters in reg ex - hashcode is not sufficient in compareTo() - need equals() with compareTo() - make class an interface - use parameterized test - multiple calls in assert() - log or re-throw - use different type of lambda - use parameterized logging - use StringBuilder instead of concatenation - use StandardCharsets.UTF_8 Issue-ID: POLICY-2906 Change-Id: I2cf8c885e3e22c2c6cbe6403a34906928afad022 Signed-off-by: Jim Hahn --- .../apex/context/impl/distribution/AbstractDistributor.java | 3 ++- .../apex/context/impl/locking/AbstractLockManager.java | 13 ++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'context/context-management/src') diff --git a/context/context-management/src/main/java/org/onap/policy/apex/context/impl/distribution/AbstractDistributor.java b/context/context-management/src/main/java/org/onap/policy/apex/context/impl/distribution/AbstractDistributor.java index 1d73f58f1..3444f9342 100644 --- a/context/context-management/src/main/java/org/onap/policy/apex/context/impl/distribution/AbstractDistributor.java +++ b/context/context-management/src/main/java/org/onap/policy/apex/context/impl/distribution/AbstractDistributor.java @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2021 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. @@ -74,7 +75,7 @@ public abstract class AbstractDistributor implements Distributor { /** * Create an instance of an abstract Context Distributor. */ - public AbstractDistributor() { + protected AbstractDistributor() { LOGGER.entry("AbstractContextDistributor()"); LOGGER.exit("AbstractContextDistributor()"); } diff --git a/context/context-management/src/main/java/org/onap/policy/apex/context/impl/locking/AbstractLockManager.java b/context/context-management/src/main/java/org/onap/policy/apex/context/impl/locking/AbstractLockManager.java index a2bd45ccc..4eb878b1c 100644 --- a/context/context-management/src/main/java/org/onap/policy/apex/context/impl/locking/AbstractLockManager.java +++ b/context/context-management/src/main/java/org/onap/policy/apex/context/impl/locking/AbstractLockManager.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2021 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. @@ -166,14 +167,12 @@ public abstract class AbstractLockManager implements LockManager { */ private ReadWriteLock getLock(final String lockTypeKey, final String lockKey, final boolean createMode) throws ContextException { - // Check if we have a lock type map for this lock type yet - if (!lockMaps.containsKey(lockTypeKey)) { - // Create a lock type map for the lock type - lockMaps.put(lockTypeKey, Collections.synchronizedMap(new HashMap())); - } + // Find or create a map for the lock type + Map lockTypeMap = lockMaps.computeIfAbsent(lockTypeKey, + unusedKey -> Collections.synchronizedMap(new HashMap())); // Find or create a lock in the lock map - ReadWriteLock lock = lockMaps.get(lockTypeKey).get(lockKey); + ReadWriteLock lock = lockTypeMap.get(lockKey); if (lock != null) { return lock; } @@ -191,7 +190,7 @@ public abstract class AbstractLockManager implements LockManager { lock = getReentrantReadWriteLock(lockTypeKey + "_" + lockKey); // Add the lock to the lock map - lockMaps.get(lockTypeKey).put(lockKey, lock); + lockTypeMap.put(lockKey, lock); if (LOGGER.isTraceEnabled()) { LOGGER.trace("created lock {}_{}", lockTypeKey, lockKey); -- cgit 1.2.3-korg