Hi, guys
Openfire wtill contain serious bug - it looses packets!
Let's see example. We have XMPP client on smartphone. Client goes e.g. to subway and connection is suddenly lost. Or for a minute it looses wi-fi. Anyway.
In his friend contact list he is still online. Friend sends him a message and it doesn't reach the destination.
Why?
Let's see the code
package org.jivesoftware.openfire.nio;
public abstract class ConnectionHandler extends IoHandlerAdapter {
@Override
public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
if (cause instanceof IOException) {
// TODO Verify if there were packets pending to be sent and decide what to do with them
Log.info("ConnectionHandler reports IOException for session: " + session, cause);
}
Because we have TODO still here.
Sender doesn't know, that destination client lost connection. It still tries to send the packet, but IOException happened. And message is lost! Even the packet is Message type it doesn't go neither to offline storage or is tried to reprocess.
My question is when this TODO is going to be fixed?