SMACK client appears logged out but can continue to send XMPP messages

I am working on an application that sends regular updates of some status codes in XMPP messages using SMACK. It turns out that it is possible to end up in a situation where the client is (or appears to be) logged off, e.g. because of an earlier network failure, but the update messages can continue to flow though the server to other clients.

Steps to reproduce:

  1. Client is logged in and sends regular update messages with application-specific status codes.

  2. A short network failure causes the client to be logged off. In Wildfire admin the session is still shown as active.

  3. The network is re-established and the client attempts to log on, but cannot do so while there is an active session because we have set Wildfire not to kick sessions when attempting to log in with identical resource name.

  4. However, the update messages continue to flow.

  5. After a while (which seems to be around 20 minutes) the session disappears in Wildfire admin, but update messages can continue to flow.

The end result is that the client appears to be offline, but its status messages continue coming, which looks inconsistent to other clients who subscribe to the client’'s presence information and to its update messages.

My question is firstly what is actually happening and secondly what would be the best remedy,i.e. to see to it that the client actually becomes logged in again and appears in Wildfire as being online.

I am using Wildfire 3.1.1 and SMACK 2.2.1.

Message was edited by: lhojding


could you please explain “4) However, the update messages continue to flow.” a little more detailed. Can the client still receive messages? Can it still send messages?


The client can at least continue to send messages


can you reproduce this issue with Smack 3.0.0? The connection logic was modified a lot, if you could post a new thread in the Smack forum you’'ll get much more attention of the Smack developers, here this issue may be lost very easy.