From d5c365f60e492e37a361654974eba1719146bdc2 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Mon, 31 Aug 2020 08:22:13 -0400 Subject: Fix more sonars in drools-pdp Fixed more sonars in drools-pdp: - remove commented code - don't throw generic Exception - unused field (made it protected instead of private) - log conditionally - cognitive complexity - too many break/continue - return empty list instead of null - Random() is not secure Fixed more eclipse warnings: - parameterize generic types Issue-ID: POLICY-2616-sonars3 Change-Id: Ia5ad769b2ea763568cfae3d81807926d89153b09 Signed-off-by: Jim Hahn --- .../statemanagement/DroolsPdpIntegrityMonitor.java | 2 +- .../drools/statemanagement/RepositoryAudit.java | 41 ++++++++++++++-------- .../statemanagement/StateManagementFeature.java | 10 +++--- .../statemanagement/test/StateManagementTest.java | 20 +++-------- 4 files changed, 38 insertions(+), 35 deletions(-) (limited to 'feature-state-management') diff --git a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DroolsPdpIntegrityMonitor.java b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DroolsPdpIntegrityMonitor.java index 2252a0f4..08c8e3a5 100644 --- a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DroolsPdpIntegrityMonitor.java +++ b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DroolsPdpIntegrityMonitor.java @@ -355,7 +355,7 @@ public class DroolsPdpIntegrityMonitor extends IntegrityMonitor { * @param persistenceProperties Used for DB access * @throws Exception passed in by the audit */ - abstract void invoke(Properties persistenceProperties) throws Exception; + abstract void invoke(Properties persistenceProperties) throws IntegrityMonitorException; } public static class IntegrityMonitorRestServer implements Startable { diff --git a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/RepositoryAudit.java b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/RepositoryAudit.java index 8f33f929..438b6ec8 100644 --- a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/RepositoryAudit.java +++ b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/RepositoryAudit.java @@ -37,6 +37,7 @@ import java.util.TreeSet; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.onap.policy.common.im.IntegrityMonitorException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -106,7 +107,7 @@ public class RepositoryAudit extends DroolsPdpIntegrityMonitor.AuditBase { * @param properties properties to be passed to the audit */ @Override - public void invoke(Properties properties) throws IOException, InterruptedException { + public void invoke(Properties properties) throws IntegrityMonitorException { logger.debug("Running 'RepositoryAudit.invoke'"); InvokeData data = new InvokeData(); @@ -121,25 +122,35 @@ public class RepositoryAudit extends DroolsPdpIntegrityMonitor.AuditBase { return; } - // Run audit for first nexus repository - logger.debug("Running read-only audit on first nexus repository: repository"); - runAudit(data); + try { + // Run audit for first nexus repository + logger.debug("Running read-only audit on first nexus repository: repository"); + runAudit(data); - // set of indices for supported nexus repos (ex: repository2 -> 2) - // TreeSet is used to maintain order so repos can be audited in numerical order - TreeSet repoIndices = countAdditionalNexusRepos(); - logger.debug("Additional nexus repositories: {}", repoIndices); + // set of indices for supported nexus repos (ex: repository2 -> 2) + // TreeSet is used to maintain order so repos can be audited in numerical + // order + TreeSet repoIndices = countAdditionalNexusRepos(); + logger.debug("Additional nexus repositories: {}", repoIndices); - // Run audit for remaining 'numNexusRepos' repositories - for (int index : repoIndices) { - logger.debug("Running read-only audit on nexus repository = repository{}", index); + // Run audit for remaining 'numNexusRepos' repositories + for (int index : repoIndices) { + logger.debug("Running read-only audit on nexus repository = repository{}", index); - data = new InvokeData(index); - data.initIsActive(); + data = new InvokeData(index); + data.initIsActive(); - if (data.isActive) { - runAudit(data); + if (data.isActive) { + runAudit(data); + } } + + } catch (IOException e) { + throw new IntegrityMonitorException(e); + + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new IntegrityMonitorException(e); } } diff --git a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/StateManagementFeature.java b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/StateManagementFeature.java index 75233376..3dbb8d3e 100644 --- a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/StateManagementFeature.java +++ b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/StateManagementFeature.java @@ -23,8 +23,10 @@ package org.onap.policy.drools.statemanagement; import java.io.IOException; import java.util.Properties; import org.onap.policy.common.im.AllSeemsWellException; +import org.onap.policy.common.im.IntegrityMonitorException; import org.onap.policy.common.im.StateChangeNotifier; import org.onap.policy.common.im.StateManagement; +import org.onap.policy.common.im.StateManagementException; import org.onap.policy.drools.core.PolicySessionFeatureApi; import org.onap.policy.drools.features.PolicyEngineFeatureApi; import org.onap.policy.drools.utils.PropertyUtil; @@ -146,7 +148,7 @@ public class StateManagementFeature implements StateManagementFeatureApi, * {@inheritDoc}. */ @Override - public void disableFailed(String resourceName) throws Exception { + public void disableFailed(String resourceName) throws StateManagementException { stateManagement.disableFailed(resourceName); } @@ -155,7 +157,7 @@ public class StateManagementFeature implements StateManagementFeatureApi, * {@inheritDoc}. */ @Override - public void disableFailed() throws Exception { + public void disableFailed() throws StateManagementException { stateManagement.disableFailed(); } @@ -163,7 +165,7 @@ public class StateManagementFeature implements StateManagementFeatureApi, * {@inheritDoc}. */ @Override - public void promote() throws Exception { + public void promote() throws IntegrityMonitorException { stateManagement.promote(); } @@ -171,7 +173,7 @@ public class StateManagementFeature implements StateManagementFeatureApi, * {@inheritDoc}. */ @Override - public void demote() throws Exception { + public void demote() throws StateManagementException { stateManagement.demote(); } diff --git a/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java b/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java index 33bfaedc..8d47e1d6 100644 --- a/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java +++ b/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java @@ -25,7 +25,6 @@ import static org.junit.Assert.assertTrue; import java.io.File; import java.io.FileInputStream; -import java.io.IOException; import java.util.Properties; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; @@ -37,6 +36,7 @@ import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import org.onap.policy.common.im.IntegrityMonitorException; import org.onap.policy.common.im.StateManagement; import org.onap.policy.drools.core.PolicySessionFeatureApi; import org.onap.policy.drools.statemanagement.DbAudit; @@ -196,28 +196,18 @@ public class StateManagementTest { repositoryAudit.invoke(fsmProperties); //Should not throw an IOException in Linux Foundation env - assertTrue(true); - } catch (IOException e) { + + } catch (IntegrityMonitorException e) { //Note: this catch is here because in a local environment mvn will not run in //in the temp directory logger.debug("testSubsytemTest RepositoryAudit IOException", e); - } catch (InterruptedException e) { - assertTrue(false); - logger.debug("testSubsytemTest RepositoryAudit InterruptedException", e); } /* ****************Db Audit Test. ************** */ logger.debug("\n\ntestStateManagementOperation: DB Audit\n\n"); - try { - DbAudit dbAudit = (DbAudit) DbAudit.getInstance(); - dbAudit.invoke(fsmProperties); - - assertTrue(true); - } catch (Exception e) { - assertTrue(false); - logger.debug("testSubsytemTest DbAudit exception", e); - } + DbAudit dbAudit = (DbAudit) DbAudit.getInstance(); + dbAudit.invoke(fsmProperties); /* ************IntegrityMonitorRestManager Test. ************ */ logger.debug("\n\ntestStateManagementOperation: IntegrityMonitorRestManager\n\n"); -- cgit 1.2.3-korg