powered by Jive Software

Client Doesn''t Refeshing when somebody login/logoff

As Subject , we move from jive-messenger to OpenFire 3,3.0 , I install it (not upgrade it) on mac intel.

now I use LDAP as user and group population .and authentication. it works, we can login,logoff, chat. but the problem I just realize when someone login or logoff , Every client (pandion, ichat, GAIM) never refresh the list ( only show the list from the last login). I have to Relogin (logoff, login again to refresh the list ).

Error log seems ok for me but in debug log I found these :

java.lang.IllegalArgumentException: Illegal JID:

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

at org.xmpp.packet.JID.(IQ.java:82)

at org.jivesoftware.openfire.net.StanzaHandler.getIQ(StanzaHandler.java:272)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:236)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:132)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

at java.lang.Thread.run(Thread.java:613)

Caused by: org.jivesoftware.stringprep.IDNAException: String too long.

at org.jivesoftware.stringprep.IDNA.toASCII(IDNA.java:153)

at org.jivesoftware.stringprep.IDNA.toASCII(IDNA.java:53)

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

… 21 more

I doubt this is the case, but I clueless about what’'s the real problem ? anyone can help me ??

Hey Erio,

Caused by: org.jivesoftware.stringprep.IDNAException: String too long.

The problem seems to be that a client is sending an IQ packet with a JID that is too big. Since the problem happens while building the IQ packet using the debugger plugin won’'t be of help. You will need to detect the client that is sending the invalid IQ packet and once you found it inspect the XML traffic. When using Pandion press F12 to open the XML debugger window.

Regards,

– Gato

To Gato,

Just realize some user use huge avatar so it’‘s trigger the exception. Thanks for showing me how to debug from Pandion. However my problem not yet solved. it’'s seem the server problem because when I login ,

I listed in Session as online user, when I set my client status, status changed in session. when I logoff ,

I’'m not listed on Session.

but All activity(login,change status, logoff) don’'t broadcast to others client.

Any Suggestion ??

btw how to debug in openfire? I try using audit message , but I can see nothing can be suspected for the problem .

To All,

it Solve now, in Our LDAP there is a person who assign into two groups. these make the presence status never broadcast to other clients. Anyone has better answer why user in LDAP should not be in more than one group ?