Presence issue 2.1.3 shared groups

I’m experiencing a presence issue with 2.1.3. I am running the latest version of java on windows 2000 server. I am using LDAP to get my users and mySQL for database backend. Everything works fine on 2.1.2. I upgraded to 2.1.3 and this is what my jive error log looks after one user connects to the server:

2005.04.23 16:28:27 org.jivesoftware.messenger.handler.IQRosterHandler.handleIQ(IQRosterHandler.java :118) Internal server error

java.lang.IllegalArgumentException: Illegal JID: domain computers@server

at org.xmpp.packet.JID.init(JID.java:250)

at org.xmpp.packet.JID.(JID.java:125)

at org.jivesoftware.messenger.XMPPServer.createJID(XMPPServer.java:161)

at org.jivesoftware.messenger.roster.Roster.getSharedUsers(Roster.java:473)

at org.jivesoftware.messenger.roster.Roster.(Roster.java:105)

at org.jivesoftware.messenger.roster.RosterManager.getRoster(RosterManager.java:69 )

at org.jivesoftware.messenger.user.User.getRoster(User.java:243)

at org.jivesoftware.messenger.handler.IQRosterHandler.manageRoster(IQRosterHandler .java:173)

at org.jivesoftware.messenger.handler.IQRosterHandler.handleIQ(IQRosterHandler.jav a:103)

at org.jivesoftware.messenger.handler.IQHandler.process(IQHandler.java:48)

at org.jivesoftware.messenger.IQRouter.handle(IQRouter.java:202)

at org.jivesoftware.messenger.IQRouter.route(IQRouter.java:73)

at org.jivesoftware.messenger.PacketRouter.route(PacketRouter.java:65)

at org.jivesoftware.messenger.net.SocketReadThread.readStream(SocketReadThread.jav a:285)

at org.jivesoftware.messenger.net.SocketReadThread.run(SocketReadThread.java:105)

Caused by: org.jivesoftware.stringprep.StringprepException: Contains prohibited code points.

at org.jivesoftware.stringprep.Stringprep.nodeprep(Stringprep.java:120)

at org.xmpp.packet.JID.init(JID.java:201)

… 14 more

2005.04.23 16:28:28 org.jivesoftware.messenger.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:139) Internal server error

java.lang.IllegalArgumentException: Illegal JID: domain computers@server

at org.xmpp.packet.JID.init(JID.java:250)

at org.xmpp.packet.JID.(JID.java:125)

at org.jivesoftware.messenger.XMPPServer.createJID(XMPPServer.java:161)

at org.jivesoftware.messenger.roster.Roster.getSharedUsers(Roster.java:473)

at org.jivesoftware.messenger.roster.Roster.(Roster.java:105)

at org.jivesoftware.messenger.roster.RosterManager.getRoster(RosterManager.java:69 )

at org.jivesoftware.messenger.handler.PresenceUpdateHandler.broadcastUpdate(Presen ceUpdateHandler.java:246)

at org.jivesoftware.messenger.handler.PresenceUpdateHandler.process(PresenceUpdate Handler.java:91)

at org.jivesoftware.messenger.handler.PresenceUpdateHandler.process(PresenceUpdate Handler.java:150)

at org.jivesoftware.messenger.PresenceRouter.handle(PresenceRouter.java:86)

at org.jivesoftware.messenger.PresenceRouter.route(PresenceRouter.java:59)

at org.jivesoftware.messenger.PacketRouter.route(PacketRouter.java:73)

at org.jivesoftware.messenger.net.SocketReadThread.readStream(SocketReadThread.jav a:240)

at org.jivesoftware.messenger.net.SocketReadThread.run(SocketReadThread.java:105)

Caused by: org.jivesoftware.stringprep.StringprepException: Contains prohibited code points.

at org.jivesoftware.stringprep.Stringprep.nodeprep(Stringprep.java:120)

at org.xmpp.packet.JID.init(JID.java:201)

… 13 more

I have repeated this error with GAIM and Pandion as clients. The client never gets the roster from the server. I have about 5 groups, all of which should appear in the user’s roster. Let me know if you need any more information. Thanks for looking into the issue.

Greg Ferguson

Hello,

I have the same issue with Jive Messenger 2.1.3 - this time, running on Fedora Core 3 with Sun’'s JRE 1.5.0_02 using MySQL as a database backend and authenticating via LDAP to an Active Directory datastore.

I am seeing the same problems with Gaim and Miranda IM - so I don’'t think the issue is client-specific.

It isn’'t a big deal as I have simply downgraded back to 2.1.2 but I thought I might as well chip in some more info to demonstrate that the issue is not Win32-specific.

Regards,

Terry

Hey Greg,

As you can see in the exception the problem is that the following JID is not valid: “domain computers@server”. More specifically, white spaces are not allowed. You should try replacing the white space with a _ or some other allowed character.

Regards,

– Gato

Thanks for the responce. I resolved this problem by using the ldapFilter section in the configuration file. I added the following line:

For my active directory setup, userAccountControl=66048 means enabled users (66050 signals disabled users). So only enabled users would be used by jive. This seemed to solve my problem.

My thoughts about why this problem was introduced in 2.1.3. In 2.1.2 there was no ldap group feature so jive didn’'t care about groups in the ldap server. So having a group like ‘‘domain computers’’ was fine in jive 2.1.2. But now, in 2.1.3, jive looks at ldap groups and a group like ‘‘domain computers’’ turns up as an illegal jid. So for anyone interested in solving a similar problem try using ldap.searchFilter to limit the set of users that the ldap server looks at.