diff options
author | Jim Hahn <jrh3@att.com> | 2021-07-06 16:03:22 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2021-07-06 16:24:57 -0400 |
commit | a87b9d9e191b4dee5d821db55d1ff4fd70b8d73a (patch) | |
tree | cc9440c171b4a9779030bd53c9f78ab566c30433 | |
parent | 4f37fcf24755332c256f72104df36a43cb4c7560 (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>
-rw-r--r-- | main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java | 4 | ||||
-rw-r--r-- | main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java | 11 |
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 eeed5fc6..6f62cf27 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 @@ -131,6 +131,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 c318a035..6ea874d8 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 @@ -22,6 +22,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.assertNull; @@ -198,6 +199,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 |