From b5415fe841ab452bf967515958aba618583792d1 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Thu, 12 Jan 2017 13:40:55 +0100 Subject: [PATCH] Don't wait the reply timeout in OfflineMessageManager.getMessages(List) for the last message. We now count the number of messages we want to retrieve, and don't wait for another message if we have already received all. Thanks to King Jeong Hun for reporting this. --- .../jivesoftware/smackx/offline/OfflineMessageManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/OfflineMessageManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/OfflineMessageManager.java index 69a3ec987..7afe302ec 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/OfflineMessageManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/OfflineMessageManager.java @@ -158,12 +158,14 @@ public class OfflineMessageManager { return nodes.contains(info.getNode()); } }); + int pendingNodes = nodes.size(); StanzaCollector messageCollector = connection.createStanzaCollector(messageFilter); try { connection.createStanzaCollectorAndSend(request).nextResultOrThrow(); // Collect the received offline messages Message message = messageCollector.nextResult(); - while (message != null) { + while (message != null && pendingNodes > 0) { + pendingNodes--; messages.add(message); message = messageCollector.nextResult(); }