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;
 
 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;
         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