I’'m new around here, not sure if this is a question or a bug.
In a custom Jabber client I’'m writing to do automated stuff, I was logging in without specifying a resource to a plain vanilla config of Jive Messenger 2.1.2. The server let me login, but I saw some funny behavior:
-
in the admin console, the session showed up, but when I clicked on it for detail, it gave me a stack trace (see below)
-
if i disconnected properly by broadcasting presence unavailable and sending </stream:stream>, or even if I ctrl-c killed my client, it did not remove the session, instead I got a stack trace in the server’'s error log. (see below)
-
in the admin console, disconnecting the session says that it succeeded, but it really failed and did not remove the session. Therefore, I have to reboot the server to clear out this session.
I found that Exodus and Psi require you to specify a resource in your identifier, so this problem can probably only happen when you’‘re directly coding a Jabber client (like me). But it took me a heck of a time to figure out my simple mistake. If the server can’‘t support missing resource, I’'d recommend that it just reject the login in the first place.
So, I have a workaround (specify the resource! :-). However, I don’'t like it that an errant Jabber client can put the server in a bad state. Otherwise, great product so far!
Stack Trace #1:
java.lang.NullPointerException
at org.jivesoftware.messenger.admin.session_002ddetails_jsp._jspService(session_00 2ddetails_jsp.java:234)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:816)
at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:45)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:807)
at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingF ilter.java:41)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:807)
at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:76)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:807)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler. java:488)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:569)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.ja va:624)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1434)
at org.mortbay.http.HttpServer.service(HttpServer.java:896)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:814)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:981)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:831)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:366)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Stack Trace #2:
2005.04.06 09:24:19 [org.jivesoftware.messenger.handler.IQAuthHandler.login(IQAuthHandler.java:175)
] Error during login
java.lang.NullPointerException
at org.jivesoftware.messenger.handler.IQAuthHandler.login(IQAuthHandler.java:161)
at org.jivesoftware.messenger.handler.IQAuthHandler.handleIQ(IQAuthHandler.java:12 3)
at org.jivesoftware.messenger.handler.IQHandler.process(IQHandler.java:48)
at org.jivesoftware.messenger.IQRouter.handle(IQRouter.java:195)
at org.jivesoftware.messenger.IQRouter.route(IQRouter.java:74)
at org.jivesoftware.messenger.PacketRouter.route(PacketRouter.java:65)
at org.jivesoftware.messenger.net.SocketReadThread.readStream(SocketReadThread.jav a:254)
at org.jivesoftware.messenger.net.SocketReadThread.run(SocketReadThread.java:110)
Message was edited by:
csimms