Timeout reached in sendAndAwait even if the response is already received

Issue #60 closed
Norbert Kakas created an issue

When I try to discoverRooms of a chatService or enter one of the rooms. I get a "rocks.xmpp.core.session.NoResponseException" I've tried to extend the defaultResponseTimeoutto 10 seconds, but it didn't help.

Maybe my issue is related to an already closed one (#12).

I'm using Babbler 0.6.0.

OUT: <iq id="c00ece28-e6c9-4aa4-b042-1eb3d298c5eb" to="conference.jabber.org" type="get"><query xmlns="http://jabber.org/protocol/disco#items"></query></iq>
IN : <iq from="conference.jabber.org" id="c00ece28-e6c9-4aa4-b042-1eb3d298c5eb" to="user@domain.com/muc" type="result" xml:lang="en"><query xmlns="http://jabber.org/protocol/disco#items"><item jid="test\20room@conference.jabber.org" name="test room"></item><item jid="multi\20node\20room@conference.jabber.org" name="multi node room"></item><item jid="ewtesztrm328141946119461@conference.jabber.org" name="ewtesztrm328141946119461"></item><item jid="test@conference.jabber.org" name="test"></item></query></iq>
rocks.xmpp.core.session.NoResponseException: Timeout reached, while waiting on a response.
    at rocks.xmpp.core.session.XmppSession.sendAndAwait(XmppSession.java:587)
    at rocks.xmpp.core.session.XmppSession.query(XmppSession.java:515)
    at rocks.xmpp.core.session.XmppSession.query(XmppSession.java:496)
    at rocks.xmpp.extensions.disco.ServiceDiscoveryManager.discoverItems(ServiceDiscoveryManager.java:427)
    at rocks.xmpp.extensions.disco.ServiceDiscoveryManager.discoverItems(ServiceDiscoveryManager.java:387)
    at rocks.xmpp.extensions.muc.ChatService.discoverRooms(ChatService.java:76)
    at test.jabber.Tester2.lambda$null$2(Tester2.java:78)
    at rocks.xmpp.util.XmppUtils.lambda$notifyEventListeners$3(XmppUtils.java:177)
    at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:890)
    at java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:404)
    at rocks.xmpp.util.XmppUtils.notifyEventListeners(XmppUtils.java:175)
    at rocks.xmpp.extensions.muc.MultiUserChatManager.lambda$new$3(MultiUserChatManager.java:80)
    at rocks.xmpp.util.XmppUtils.lambda$notifyEventListeners$3(XmppUtils.java:177)
    at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:890)
    at java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:404)
    at rocks.xmpp.util.XmppUtils.notifyEventListeners(XmppUtils.java:175)
    at rocks.xmpp.core.session.XmppSession.lambda$handleElement$9(XmppSession.java:805)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Comments (3)

  1. Christian Schudt repo owner

    Hm, just tested it with the current master branch and it works as expected.

    One known issue with 0.6 was, when you do this within a Message or Presence listener, the query is executed on the same thread and kind of blocks itself, because IQ results are delivered to the same thread, which is currently waiting on the result.

    You could then do the query on another thread, or try using 0.6.1.

  2. Log in to comment