aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2021-07-06 16:03:22 -0400
committerRam Krishna Verma <ram_krishna.verma@bell.ca>2022-07-14 17:17:08 +0000
commit9f39a218087397e9fa619bc0dbec2122c2c44cb0 (patch)
tree45d09d2624f6ee6dc13e6ec6de4d93c6c9022506
parent3f2d7fcd55d5722682aa7a96d7e808273f29ad5e (diff)
Fix NPE in UpdateReq.reconfigure()
While running CSIT to test heartbeat changes with multiple PAPs, observed an NPE in UpdateReq.reconfigure(). Modified the code to always use deployment lists instead of null lists. Issue-ID: POLICY-3460 Change-Id: I884e091817e88309330139a01d060e286bd42008 Signed-off-by: Jim Hahn <jrh3@att.com> (cherry picked from commit a87b9d9e191b4dee5d821db55d1ff4fd70b8d73a)
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java4
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java11
2 files changed, 15 insertions, 0 deletions
diff --git a/main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java b/main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java
index 18ae5af6..74d7ad8a 100644
--- a/main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java
+++ b/main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java
@@ -122,6 +122,10 @@ public class UpdateReq extends RequestImpl {
PdpUpdate update = (PdpUpdate) newMessage;
+ // ensure lists are never null
+ update.setPoliciesToBeDeployed(alwaysList(update.getPoliciesToBeDeployed()));
+ update.setPoliciesToBeUndeployed(alwaysList(update.getPoliciesToBeUndeployed()));
+
if (isSameContent(update)) {
// content hasn't changed - nothing more to do
return true;
diff --git a/main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java b/main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java
index d85bf737..d636f8b8 100644
--- a/main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java
+++ b/main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java
@@ -21,6 +21,7 @@
package org.onap.policy.pap.main.comm.msgdata;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
@@ -196,6 +197,16 @@ public class UpdateReqTest extends CommonRequestBase {
msg2.setPdpGroup(DIFFERENT);
assertTrue(data.reconfigure(msg2));
assertSame(msg2, data.getMessage());
+
+ // both lists in the update are null - should not throw an exception
+ PdpUpdate msg3 = new PdpUpdate(update);
+ msg3.setPdpGroup(DIFFERENT);
+ msg3.setPoliciesToBeDeployed(null);
+ msg3.setPoliciesToBeUndeployed(null);
+ assertThatCode(() -> data.reconfigure(msg3)).doesNotThrowAnyException();
+
+ // both lists in the current msg (i.e., msg3) are null - should not throw an exception
+ assertThatCode(() -> data.reconfigure(update)).doesNotThrowAnyException();
}
@Test