Hi, I guess there is an issue in RoomListenerMultiplexor.java . When the xmpp server (I use ejabberd) is not available , connectionClosed() method called which removes packet and connection listeners:
connection.removeConnectionListener(this);
connection.removePacketListener(listener);
When connection is restored listeners are not attached back.
Good point, tracked separately as SMACK-572. As of now SMACK-571 is only helpful if you manually rejoin rooms after reconnect or if xep198 (not yet in Smack) is used.