AnsweredAssumed Answered

Cannot re-join room NoResponseException timeout

Question asked by steve on Mar 16, 2016
Latest reply on May 1, 2017 by Adam D

Hi,

 

Openfire 3.10.3
smack 4.1.6

 

I create a group chat room and I can enter the room and invite other to join the room without any problems.

The problems seems to be leaving the room and join it later and I receive NoResponseException.

 

However, there is an item-not-found error. However, the room geniezip@xmpp1.call-genie.com does exist on openfire and that is the room I am trying to join.

 

03-16 14:32:18.415 10689-10791/com.sunsystem.CallGenie D/SMACK: SENT (0): <iq to='geniezip@xmpp1.call-genie.com' id='922vp-24' type='get'><query xmlns='http://jabber.org/protocol/disco#info'></query></iq>
03-16 14:32:18.419 10689-10792/com.sunsystem.CallGenie D/SMACK: RECV (0): <iq type="error" id="922vp-24" from="geniezip@xmpp1.call-genie.com" to="97.steve@xmpp1.call-genie.com/mobile"><query xmlns="http://jabber.org/protocol/disco#info"/><error code="404" type="cancel"><item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
03-16 14:32:21.290 10689-10791/com.sunsystem.CallGenie D/SMACK: SENT (0): <presence to='geniezip@xmpp1.call-genie.com/steve' id='922vp-26'><x xmlns='http://jabber.org/protocol/muc'></x><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='os2Kusj3WEOivn5n4iFr/ZEO8ls='/></presence>

 

This is the exception:

03-16 14:32:26.290 10689-10689/com.sunsystem.CallGenie I/SInstant: NoResponseException: No response received within reply timeout. Timeout was 5000ms (~5s). Used filter: AndFilter: (FromMatchesFilter (full): geniezip@xmpp1.call-genie.com/steve, StanzaTypeFilter: org.jivesoftware.smack.packet.Presence).

 

The code I am using is this

 public boolean joinRoom() {
        /* Get the MultiUserChatManager */
        log.log(Level.INFO, "Join room: " + SInstant.this.getRoomJid() + " nickName: " + SInstant.this.getNickName());
        boolean hasJoined = false;
        
        final MultiUserChatManager multiUserChatManager = MultiUserChatManager.getInstanceFor(mClientConnection);
        final MultiUserChat multiUserChat = multiUserChatManager.getMultiUserChat(SInstant.this.getRoomJid());

        if(!multiUserChat.isJoined()) {
            try {
                multiUserChat.join(SInstant.this.getNickName());
                log.log(Level.INFO, " " + SInstant.this.getNickName() + " has successfully joined " + SInstant.this.getRoomJid());
                hasJoined = true;
            }
            catch(NoResponseException ex) {
                log.log(Level.INFO, "NoResponseException: " + ex.getMessage());
            }
            catch(XMPPErrorException ex) {
                log.log(Level.INFO, "XMPPErrorException: " + ex.getMessage());
            }
            catch(NotConnectedException ex) {
                log.log(Level.INFO, "NotConnectedException: " + ex.getMessage());
            }
        }
        else {
            log.log(Level.WARNING, " " + SInstant.this.getNickName() + " has already joined this " + SInstant.this.getRoomJid());
        }
        return hasJoined;
    }

 

Many thanks for any suggestions

Outcomes