aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2021-09-02 09:39:37 -0400
committerJim Hahn <jrh3@att.com>2021-09-02 09:52:26 -0400
commit347bc1022aba20ae134848ef1a04930e9cb69b09 (patch)
tree0ecdbc187da9f01bb9f47ea7254a4da5afaa1282
parent522374b238ce34fa20d67ecfd7af0a88ce3e2663 (diff)
Fix PAP PDP expiration timer
Added runtime exceptions to the "catch" clause so that the thread associated with the PDP expiration timer will not terminate. Also added to a few other "catch" clauses, particularly those in the REST controllers. Issue-ID: POLICY-3625 Change-Id: I9206121d3e9b91da593ae771e7586752b13949be Signed-off-by: Jim Hahn <jrh3@att.com>
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java2
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/notification/PolicyNotifier.java2
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupHealthCheckControllerV1.java4
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupQueryControllerV1.java5
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupStateChangeControllerV1.java5
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestControllerV1.java9
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/startstop/PapDatabaseInitializer.java2
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/comm/PdpModifyRequestMapTest.java12
8 files changed, 29 insertions, 12 deletions
diff --git a/main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java b/main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java
index beef4750..f231130a 100644
--- a/main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java
+++ b/main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java
@@ -295,7 +295,7 @@ public class PdpModifyRequestMap {
policyNotifier.publish(notification);
}
- } catch (PfModelException e) {
+ } catch (PfModelException | RuntimeException e) {
logger.warn("failed to remove expired PDPs", e);
}
}
diff --git a/main/src/main/java/org/onap/policy/pap/main/notification/PolicyNotifier.java b/main/src/main/java/org/onap/policy/pap/main/notification/PolicyNotifier.java
index 641546c1..824d1dbd 100644
--- a/main/src/main/java/org/onap/policy/pap/main/notification/PolicyNotifier.java
+++ b/main/src/main/java/org/onap/policy/pap/main/notification/PolicyNotifier.java
@@ -69,7 +69,7 @@ public class PolicyNotifier {
publish(notification);
- } catch (PfModelException e) {
+ } catch (PfModelException | RuntimeException e) {
logger.warn("cannot update deployment status", e);
}
}
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupHealthCheckControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupHealthCheckControllerV1.java
index 1e1732f2..300d3c72 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupHealthCheckControllerV1.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupHealthCheckControllerV1.java
@@ -1,6 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019,2021 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.
@@ -36,6 +37,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang3.tuple.Pair;
import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.pdp.concepts.Pdps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -95,7 +97,7 @@ public class PdpGroupHealthCheckControllerV1 extends PapRestControllerV1 {
final Pair<Status, Pdps> pair = provider.fetchPdpGroupHealthStatus();
return addLoggingHeaders(addVersionControlHeaders(Response.status(pair.getLeft())), requestId)
.entity(pair.getRight()).build();
- } catch (final PfModelException exp) {
+ } catch (final PfModelException | PfModelRuntimeException exp) {
LOGGER.info("pdpGroup health check failed", exp);
return addLoggingHeaders(
addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupQueryControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupQueryControllerV1.java
index c28b91e4..576eb8d8 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupQueryControllerV1.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupQueryControllerV1.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019,2021 Nordix Foundation.
- * Modifications Copyright (C) 2019 AT&T Intellectual Property.
+ * Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,6 +37,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang3.tuple.Pair;
import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.pdp.concepts.PdpGroups;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -96,7 +97,7 @@ public class PdpGroupQueryControllerV1 extends PapRestControllerV1 {
final Pair<Status, PdpGroups> pair = provider.fetchPdpGroupDetails();
return addLoggingHeaders(addVersionControlHeaders(Response.status(pair.getLeft())), requestId)
.entity(pair.getRight()).build();
- } catch (final PfModelException exp) {
+ } catch (final PfModelException | PfModelRuntimeException exp) {
LOGGER.info("group query failed", exp);
return addLoggingHeaders(
addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupStateChangeControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupStateChangeControllerV1.java
index 9435296d..31574ab1 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupStateChangeControllerV1.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/PdpGroupStateChangeControllerV1.java
@@ -1,7 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019-2021 Nordix Foundation.
- * Modifications Copyright (C) 2019 AT&T Intellectual Property.
+ * Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,6 +39,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang3.tuple.Pair;
import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.pap.concepts.PdpGroupStateChangeResponse;
import org.onap.policy.models.pdp.enums.PdpState;
import org.slf4j.Logger;
@@ -102,7 +103,7 @@ public class PdpGroupStateChangeControllerV1 extends PapRestControllerV1 {
final Pair<Status, PdpGroupStateChangeResponse> pair = provider.changeGroupState(groupName, state);
return addLoggingHeaders(addVersionControlHeaders(Response.status(pair.getLeft())), requestId)
.entity(pair.getRight()).build();
- } catch (final PfModelException exp) {
+ } catch (final PfModelException | PfModelRuntimeException exp) {
LOGGER.info("group state-change failed", exp);
return addLoggingHeaders(
addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestControllerV1.java b/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestControllerV1.java
index bd187dcb..718ae574 100644
--- a/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestControllerV1.java
+++ b/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestControllerV1.java
@@ -39,6 +39,7 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.pdp.persistence.provider.PdpFilterParameters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -124,7 +125,7 @@ public class StatisticsRestControllerV1 extends PapRestControllerV1 {
.endTime(convertEpochtoInstant(endTime))
.build()))
.build();
- } catch (final PfModelException exp) {
+ } catch (final PfModelException | PfModelRuntimeException exp) {
LOGGER.info(GET_STATISTICS_ERR_MSG, exp);
return addLoggingHeaders(
addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
@@ -182,7 +183,7 @@ public class StatisticsRestControllerV1 extends PapRestControllerV1 {
.endTime(convertEpochtoInstant(endTime))
.build()))
.build();
- } catch (final PfModelException exp) {
+ } catch (final PfModelException | PfModelRuntimeException exp) {
LOGGER.info(GET_STATISTICS_ERR_MSG, exp);
return addLoggingHeaders(
addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
@@ -243,7 +244,7 @@ public class StatisticsRestControllerV1 extends PapRestControllerV1 {
.endTime(convertEpochtoInstant(endTime))
.build()))
.build();
- } catch (final PfModelException exp) {
+ } catch (final PfModelException | PfModelRuntimeException exp) {
LOGGER.info(GET_STATISTICS_ERR_MSG, exp);
return addLoggingHeaders(
addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
@@ -310,7 +311,7 @@ public class StatisticsRestControllerV1 extends PapRestControllerV1 {
.endTime(convertEpochtoInstant(endTime))
.build()))
.build();
- } catch (final PfModelException exp) {
+ } catch (final PfModelException | PfModelRuntimeException exp) {
LOGGER.info(GET_STATISTICS_ERR_MSG, exp);
return addLoggingHeaders(
addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
diff --git a/main/src/main/java/org/onap/policy/pap/main/startstop/PapDatabaseInitializer.java b/main/src/main/java/org/onap/policy/pap/main/startstop/PapDatabaseInitializer.java
index 5c28e7a6..d180c934 100644
--- a/main/src/main/java/org/onap/policy/pap/main/startstop/PapDatabaseInitializer.java
+++ b/main/src/main/java/org/onap/policy/pap/main/startstop/PapDatabaseInitializer.java
@@ -82,7 +82,7 @@ public class PapDatabaseInitializer {
LOGGER.info("Initial pdpGroup already exists in DB, skipping create - {} from {}",
pdpGroupsFromDb, groupsJson);
}
- } catch (final PfModelException | CoderException exp) {
+ } catch (final PfModelException | CoderException | RuntimeException exp) {
throw new PolicyPapException(exp);
}
}
diff --git a/main/src/test/java/org/onap/policy/pap/main/comm/PdpModifyRequestMapTest.java b/main/src/test/java/org/onap/policy/pap/main/comm/PdpModifyRequestMapTest.java
index 27c01e18..e626d28d 100644
--- a/main/src/test/java/org/onap/policy/pap/main/comm/PdpModifyRequestMapTest.java
+++ b/main/src/test/java/org/onap/policy/pap/main/comm/PdpModifyRequestMapTest.java
@@ -56,6 +56,7 @@ import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.onap.policy.models.base.PfModelException;
+import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.pdp.concepts.Pdp;
import org.onap.policy.models.pdp.concepts.PdpGroup;
import org.onap.policy.models.pdp.concepts.PdpMessage;
@@ -423,6 +424,13 @@ public class PdpModifyRequestMapTest extends CommonRequestBase {
}
@Test
+ public void testRemoveExpiredPdps_DaoRtEx() throws Exception {
+ when(dao.getFilteredPdpGroups(any())).thenThrow(makeRuntimeException());
+
+ assertThatCode(map::removeExpiredPdps).doesNotThrowAnyException();
+ }
+
+ @Test
public void testRemoveFromSubgroup() throws Exception {
PdpGroup group = makeGroup(MY_GROUP);
group.setPdpSubgroups(List.of(makeSubGroup(MY_SUBGROUP, PDP1, PDP2, PDP3)));
@@ -454,6 +462,10 @@ public class PdpModifyRequestMapTest extends CommonRequestBase {
return new PfModelException(Status.BAD_REQUEST, "expected exception");
}
+ protected PfModelRuntimeException makeRuntimeException() {
+ return new PfModelRuntimeException(Status.BAD_REQUEST, "expected exception");
+ }
+
@Test
public void testMakePdpRequests() {
// this should invoke the real method without throwing an exception