powered by Jive Software

Smack 4.4.0-alpha2 - MultiUserChat#changeSubject response filter does not include type:error condition

MultiUserChat#changeSubject stanzaFilter setup does not include response with type:error. Hence it throws the SmackException$NoResponseException only on timeout, without giving the actual cause of the problem to app layer.

2019-06-19 10:06:17.439 31331-32025/org.atalk.android D/SMACK: SENT (0): 
    <message to='chatroom-3qdy@conference.atalk.org' id='xXlls-200' type='groupchat'>
      <subject>
        gui
      </subject>
    </message>
    <r xmlns='urn:xmpp:sm:3'/>
2019-06-19 10:06:17.512 31331-32026/org.atalk.android D/SMACK: RECV (0): 
    <message xml:lang='en' to='swordfish@atalk.org/atalk' from='chatroom-3qdy@conference.atalk.org' type='error' id='xXlls-200'>
      <error code='403' type='auth'>
        <forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
        <text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>
          Only moderators are allowed to change the subject in this room
        </text>
      </error>
      <subject>
        gui
      </subject>
    </message>

2019-06-19 10:06:27.476 31331-32608/org.atalk.android E/(ChatRoomJabberImpl.java:952)#setSubject: Failed to change subject for chat roomchatroom-3qdy@conference.atalk.org: No response received within reply timeout. Timeout was 10000ms (~10s). StanzaCollector has been cancelled. Waited for response using: AndFilter: (AndFilter: (FromMatchesFilter (ignoreResourcepart): chatroom-3qdy@conference.atalk.org, MessageTypeFilter: type=groupchat), org.jivesoftware.smackx.muc.MultiUserChat$6@e95aa3b).
    org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 10000ms (~10s). StanzaCollector has been cancelled. Waited for response using: AndFilter: (AndFilter: (FromMatchesFilter (ignoreResourcepart): chatroom-3qdy@conference.atalk.org, MessageTypeFilter: type=groupchat), org.jivesoftware.smackx.muc.MultiUserChat$6@e95aa3b).
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:293)
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:240)
        at org.jivesoftware.smackx.muc.MultiUserChat.changeSubject(MultiUserChat.java:2026)
        at net.java.sip.communicator.impl.protocol.jabber.ChatRoomJabberImpl.setSubject(ChatRoomJabberImpl.java:949)
        at net.java.sip.communicator.impl.muc.MUCServiceImpl$JoinChatRoomTask.run(MUCServiceImpl.java:519)