From 14b03149db9892b73f43f2690b954d85e8a5ed15 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Wed, 14 Jan 2015 20:14:48 +0100 Subject: [PATCH] Add PacketCollector.throwIfCancelled() to prevent wrong usage of the collector. --- .../main/java/org/jivesoftware/smack/PacketCollector.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/PacketCollector.java b/smack-core/src/main/java/org/jivesoftware/smack/PacketCollector.java index 14111003b..0f2e09fef 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/PacketCollector.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/PacketCollector.java @@ -139,6 +139,7 @@ public class PacketCollector { */ @SuppressWarnings("unchecked") public

P nextResultBlockForever() { + throwIfCancelled(); P res = null; while (res == null) { try { @@ -171,6 +172,7 @@ public class PacketCollector { */ @SuppressWarnings("unchecked") public

P nextResult(long timeout) { + throwIfCancelled(); P res = null; long remainingWait = timeout; final long waitStart = System.currentTimeMillis(); @@ -243,4 +245,10 @@ public class PacketCollector { } } } + + private final void throwIfCancelled() { + if (cancelled) { + throw new IllegalStateException("Packet collector already cancelled"); + } + } }