From 70f1c22bb278b9342b5b011369ff66babaa3982f Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Mon, 4 Aug 2014 18:15:42 +0200 Subject: [PATCH] Prevent PacketCollector leaking in AbstractXMPPConnection.createPacketCollectorAndSend(IQ) in case there is a NoResponseException. --- .../org/jivesoftware/smack/AbstractXMPPConnection.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java index 6854b8fc6..9aa5fc156 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -654,8 +654,14 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { PacketFilter packetFilter = new IQReplyFilter(packet, this); // Create the packet collector before sending the packet PacketCollector packetCollector = createPacketCollector(packetFilter); - // Now we can send the packet as the collector has been created - sendPacket(packet); + try { + // Now we can send the packet as the collector has been created + sendPacket(packet); + } + catch (NotConnectedException e) { + packetCollector.cancel(); + throw e; + } return packetCollector; }