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 2947aab5b..f6ea8666c 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -168,7 +168,12 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { protected XMPPInputOutputStream compressionHandler; - private final ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(2, + /** + * ExecutorService used to invoke the PacketListeners on newly arrived and parsed stanzas. It is + * important that we use a single threaded ExecutorService in order to guarantee that the + * PacketListeners are invoked in the same order the stanzas arrived. + */ + private final ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new SmackExecutorThreadFactory(connectionCounterValue)); /**