From 49614cfbb772772098d104f8864d8107e24e48e7 Mon Sep 17 00:00:00 2001 From: "w.dawiskiba" Date: Thu, 1 Dec 2022 15:57:06 +0100 Subject: [PATCH] added null check to prevent NullPointerExceptions --- lib/src/main/java/io/ably/lib/realtime/Presence.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/src/main/java/io/ably/lib/realtime/Presence.java b/lib/src/main/java/io/ably/lib/realtime/Presence.java index 84bc1acac..1e835369d 100644 --- a/lib/src/main/java/io/ably/lib/realtime/Presence.java +++ b/lib/src/main/java/io/ably/lib/realtime/Presence.java @@ -1176,9 +1176,13 @@ synchronized List endSync() { /* any members that were present at the start of the sync, * and have not been seen in sync, can be removed */ for(String itemKey: residualMembers) { - /* clone presence message as it still can be in the internal presence map */ - removedEntries.add((PresenceMessage)members.get(itemKey).clone()); - members.remove(itemKey); + PresenceMessage removedMember = members.remove(itemKey); + /* This null check is added as a potential fix for an issue that + * could not be reproduced, reported here https://github.com/ably/ably-java/issues/853 */ + if(removedMember != null) { + /* clone presence message as it still can be in the internal presence map */ + removedEntries.add((PresenceMessage) removedMember.clone()); + } } residualMembers = null;