diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java index 996220f96..6c9997d0b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java @@ -60,8 +60,7 @@ import org.jivesoftware.smackx.ping.packet.Ping; public class PingManager extends Manager { private static final Logger LOGGER = Logger.getLogger(PingManager.class.getName()); - private static final Map INSTANCES = Collections - .synchronizedMap(new WeakHashMap()); + private static final Map INSTANCES = new WeakHashMap(); private static final PacketFilter PING_PACKET_FILTER = new AndFilter( new PacketTypeFilter(Ping.class), IQTypeFilter.GET); @@ -86,6 +85,7 @@ public class PingManager extends Manager { PingManager pingManager = INSTANCES.get(connection); if (pingManager == null) { pingManager = new PingManager(connection); + INSTANCES.put(connection, pingManager); } return pingManager; } @@ -119,7 +119,6 @@ public class PingManager extends Manager { new SmackExecutorThreadFactory(connection.getConnectionCounter(), "Ping")); ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection); sdm.addFeature(Ping.NAMESPACE); - INSTANCES.put(connection, this); connection.addPacketListener(new PacketListener() { // Send a Pong for every Ping