[BUG] [OF 3.8 - 3.9.1] XMPP is disconnected whether he/she receives emoticons

This is a very annoying bug. It seems that OF does not like the new emoticons in Android 4.4. If an emoticon is sent/received the users (who are receinving/sending) will be disconnected. Then, the user re-connects back to the server. It happens EVERY time an emoticon (maybe it is called Emoji) is used.

Did you have a look in the logs?

I’ve once had a similar problem: When you sent a to Openfire and forgot to specify the “to” attribute, the user was disconnected WITHOUT stream error.

Having had a look in the logs, I saw a NullPointerException, which was causing the disconnect.

Maybe there’s a similar problem, some illegal characters within the message or something like this.

Yes it must be some illegal character since even Gajim can’t display the emoticons correctly. It has to be said that other servers (ejabberd, prosody) DO NOT crash when these emojis are sent/received.

A excerpt from the log would be helpful. Do you see anything there?

Here it is!

2014.02.07 14:12:21 org.jivesoftware.openfire.nio.ConnectionHandler - Closing connection due to error while processing message: zUp46CPQC2C5

java.lang.NumberFormatException: For input string: “?”

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Integer.parseInt(Integer.java:492)

at org.jivesoftware.openfire.net.MXParser.more(MXParser.java:384)

at org.jivesoftware.openfire.net.MXParser.nextImpl(MXParser.java:85)

at org.xmlpull.mxp1.MXParser.nextToken(MXParser.java:1100)

at org.dom4j.io.XMPPPacketReader.parseDocument(XMPPPacketReader.java:317)

at org.dom4j.io.XMPPPacketReader.read(XMPPPacketReader.java:154)

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

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

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

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

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

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

at org.apache.mina.common.IoFilterAdapter.messageReceived(IoFilterAdapter.java:80)

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

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

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

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

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

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

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

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

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

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

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

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

at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)

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

This would appear to be OF-455