From 26e6efa767c87e64fdf815f51b755fe1f175f49a Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Thu, 3 Jun 2021 19:10:07 +0200 Subject: [PATCH] [address] Fix NPE in MultipleRecipientManager The arguments 'to', 'cc, and 'bcc' may be null, hence ensure that they are non-null when calling e.g. size() on them. Fixes SMACK-907 Fixes: df96c5709379 ("[address] Get rid of PacketCopy workaround") --- .../address/MultipleRecipientManager.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/MultipleRecipientManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/MultipleRecipientManager.java index a2c73552a..630d37c8b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/MultipleRecipientManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/MultipleRecipientManager.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.address; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.List; import org.jivesoftware.smack.SmackException.FeatureNotSupportedException; @@ -228,18 +229,16 @@ public class MultipleRecipientManager { throw new AssertionError(); } + if (to == null) to = Collections.emptyList(); + if (cc == null) cc = Collections.emptyList(); + if (bcc == null) bcc = Collections.emptyList(); + final int numRecipients = to.size() + cc.size() + bcc.size(); final List recipients = new ArrayList<>(numRecipients); - if (to != null) { - recipients.addAll(to); - } - if (cc != null) { - recipients.addAll(cc); - } - if (bcc != null) { - recipients.addAll(bcc); - } + recipients.addAll(to); + recipients.addAll(cc); + recipients.addAll(bcc); final List stanzasToSend = new ArrayList<>(numRecipients); for (Jid recipient : recipients) {