powered by Jive Software

Presence information incorrect

I am using Smack 2.2.1 and Wildfire 3.1.1 to develop an XMPP-based application with clients sending out regular updates of a status code that other clients can subscribe to. Quite frequently I encounter a situation where the presence information for a logged-in client is incorrect. Although I am sure that a client A has an active session, the session is not shown in WF admin and A appears as “offline” to other clients who have subscribed to A’'s presence. The other clients can however continue to receive the status updates sent out from A.

The following excerpt from the WF error log seems to be connected to the problem

2007.02.22 22:32:57 org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHa ndler.java:141) Internal server error. Triggered by packet:

java.lang.NullPointerException

at org.jivesoftware.wildfire.SessionManager.sessionAvailable(SessionManager.java:7 31)

at org.jivesoftware.wildfire.ClientSession.setPresence(ClientSession.java:668)

at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:98)

at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:153)

at org.jivesoftware.wildfire.PresenceRouter.handle(PresenceRouter.java:92)

at org.jivesoftware.wildfire.PresenceRouter.route(PresenceRouter.java:61)

at org.jivesoftware.wildfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.wildfire.net.SocketReader.processPresence(SocketReader.java:29 9)

at org.jivesoftware.wildfire.net.ClientSocketReader.processPresence(ClientSocketRe ader.java:57)

at org.jivesoftware.wildfire.net.SocketReader.process(SocketReader.java:193)

at org.jivesoftware.wildfire.net.BlockingReadingMode.readStream(BlockingReadingMod e.java:156)

at org.jivesoftware.wildfire.net.BlockingReadingMode.run(BlockingReadingMode.java: 62)

at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:123)

My question is if this could be caused by some incorrect usage of SMACK, or if the problem can be something else.