mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-12-22 20:47:57 +01:00
OMEMO: properly handle item-not-found in refreshRepublishDeviceList.
Fixes SMACK-830
This commit is contained in:
parent
9839ff034c
commit
d50bb1df1d
1 changed files with 11 additions and 0 deletions
|
@ -46,6 +46,7 @@ import org.jivesoftware.smack.XMPPException;
|
|||
|
||||
import org.jivesoftware.smack.packet.Message;
|
||||
import org.jivesoftware.smack.packet.Stanza;
|
||||
import org.jivesoftware.smack.packet.StanzaError;
|
||||
import org.jivesoftware.smackx.carbons.packet.CarbonExtension;
|
||||
import org.jivesoftware.smackx.mam.MamManager;
|
||||
import org.jivesoftware.smackx.muc.MultiUserChat;
|
||||
|
@ -656,10 +657,20 @@ public abstract class OmemoService<T_IdKeyPair, T_IdKey, T_PreKey, T_SigPreKey,
|
|||
|
||||
// refreshOmemoDeviceList;
|
||||
OmemoDeviceListElement publishedList;
|
||||
|
||||
try {
|
||||
publishedList = fetchDeviceList(connection, userDevice.getJid());
|
||||
} catch (PubSubException.NotAPubSubNodeException e) {
|
||||
// Node is not a PubSub node. This might happen on some ejabberd servers.
|
||||
publishedList = null;
|
||||
} catch (XMPPException.XMPPErrorException e) {
|
||||
if (e.getStanzaError().getCondition() == StanzaError.Condition.item_not_found) {
|
||||
// Items not found -> items do not exist
|
||||
publishedList = null;
|
||||
} else {
|
||||
// Some other error -> throw
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
if (publishedList == null) {
|
||||
publishedList = new OmemoDeviceListElement_VAxolotl(Collections.<Integer>emptySet());
|
||||
|
|
Loading…
Reference in a new issue