From 404b90054b19967a6623c3afb3765792c853906c Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Wed, 25 Feb 2015 16:14:16 +0100 Subject: [PATCH] Use Executors.newSingleThreadScheduledExecutor and remove the calls to setMaximumPoolSize() and steKeepAliveTime() since they are ineffective on Android. --- .../java/org/jivesoftware/smack/AbstractXMPPConnection.java | 6 ++---- .../main/java/org/jivesoftware/smackx/ping/PingManager.java | 4 ++-- 2 files changed, 4 insertions(+), 6 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 5e8b4928a..c7d77c850 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -33,8 +33,8 @@ import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -244,7 +244,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { /** * This scheduled thread pool executor is used to remove pending callbacks. */ - private final ScheduledThreadPoolExecutor removeCallbacksService = new ScheduledThreadPoolExecutor(1, + private final ScheduledExecutorService removeCallbacksService = Executors.newSingleThreadScheduledExecutor( new SmackExecutorThreadFactory(connectionCounterValue, "Remove Callbacks")); private static int concurrencyLevel = Runtime.getRuntime().availableProcessors() + 1; @@ -333,8 +333,6 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { */ protected AbstractXMPPConnection(ConnectionConfiguration configuration) { config = configuration; - removeCallbacksService.setMaximumPoolSize(concurrencyLevel); - removeCallbacksService.setKeepAliveTime(THREAD_KEEP_ALIVE_SECONDS, TimeUnit.SECONDS); } protected ConnectionConfiguration getConfiguration() { 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 35d9d8593..30e837b82 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 @@ -21,9 +21,9 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.WeakHashMap; +import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; @@ -117,7 +117,7 @@ public class PingManager extends Manager { private PingManager(XMPPConnection connection) { super(connection); - executorService = new ScheduledThreadPoolExecutor(1, + executorService = Executors.newSingleThreadScheduledExecutor( new SmackExecutorThreadFactory(connection.getConnectionCounter(), "Ping")); ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection); sdm.addFeature(Ping.NAMESPACE);