From a9741a8b1099579736b6ce130aa43c2a44312a7b Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Mon, 29 Jun 2015 17:07:42 +0200 Subject: [PATCH] Use weak map for 'managers' in Socks5BytestreamManager Fixes memory leak and SMACK-678. --- .../smackx/bytestreams/socks5/Socks5BytestreamManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java index 04bd3d9fe..4ef7b167d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java @@ -20,11 +20,11 @@ import java.io.IOException; import java.net.Socket; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Random; +import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeoutException; @@ -110,7 +110,7 @@ public final class Socks5BytestreamManager extends Manager implements Bytestream private final static Random randomGenerator = new Random(); /* stores one Socks5BytestreamManager for each XMPP connection */ - private final static Map managers = new HashMap(); + private final static Map managers = new WeakHashMap<>(); /* * assigns a user to a listener that is informed if a bytestream request for this user is