diff --git a/source/org/jivesoftware/smack/keepalive/KeepAliveManager.java b/source/org/jivesoftware/smack/keepalive/KeepAliveManager.java index 99e1acfba..a3cb4475f 100644 --- a/source/org/jivesoftware/smack/keepalive/KeepAliveManager.java +++ b/source/org/jivesoftware/smack/keepalive/KeepAliveManager.java @@ -276,10 +276,10 @@ public class KeepAliveManager { public void run() { Ping ping = new Ping(); PacketFilter responseFilter = new PacketIDFilter(ping.getPacketID()); - final PacketCollector response = connection.createPacketCollector(responseFilter); + final PacketCollector response = pingFailedListeners.isEmpty() ? null : connection.createPacketCollector(responseFilter); connection.sendPacket(ping); - if (!pingFailedListeners.isEmpty()) { + if (response != null) { // Schedule a collector for the ping reply, notify listeners if none is received. periodicPingExecutorService.schedule(new Runnable() { @Override