I’m rolling with Openfire 3.4.5 and had an issue with a user getting booted from the server every so often. I tracked it down to an entry they had in their buddy list that did not contain a domain (“full jid”), it was mybuddy instead of mybuddy@domain (in jiveroster).
So I played around and noticed that I could add buddies via Pidgin that did not contain a domain name. Openfire happily placed it in the database and then will dump tracebacks to the logs.
Am I missing something here? Seems like Openfire shouldn’t except these non-complete JIDs.
I am attaching the XMPP console log from Pidgin and the traceback on the server and the bogus entry now in the database. (akrherz2 user does not exist)
Had a user get bit again by this bug. The issue was this bug prevented them from logging in:
java.lang.IllegalArgumentException: Illegal JID: Manformed_Jid_with_no_domain
at org.xmpp.packet.JID.init(JID.java:395)
at org.xmpp.packet.JID.(JID.java:230)
at org.jivesoftware.openfire.roster.RosterItemProvider.getItems(RosterItemProvider .java:278)
at org.jivesoftware.openfire.roster.Roster.(Roster.java:110)
I had to manually remove the bad entry from the database and the user could log in again.
Had to cut off the list of issues somewhere. Lord knows enough things changed in 3.6.0. Anyway, yeah, I think we have some pending patches to improve upon this already!