From b7633e713fa79a8ab53c150726451d082fc3afd0 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Tue, 1 Aug 2017 10:50:57 +0200 Subject: catch state changing error when sending timeout to iq callbacks --- src/main/java/de/pixart/messenger/xmpp/XmppConnection.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/main/java/de/pixart/messenger/xmpp/XmppConnection.java') diff --git a/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java b/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java index fc40b410e..354065c0e 100644 --- a/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java +++ b/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java @@ -1114,7 +1114,12 @@ public class XmppConnection implements Runnable { } } for (OnIqPacketReceived callback : callbacks) { - callback.onIqPacketReceived(account, failurePacket); + try { + callback.onIqPacketReceived(account, failurePacket); + } catch (StateChangingError error) { + Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": caught StateChangingError(" + error.state.toString() + ") while clearing callbacks"); + //ignore + } } Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": done clearing iq callbacks. " + this.packetCallbacks.size() + " left"); } @@ -1350,8 +1355,7 @@ public class XmppConnection implements Runnable { public synchronized String sendUnmodifiedIqPacket(final IqPacket packet, final OnIqPacketReceived callback) { if (packet.getId() == null) { - final String id = nextRandomId(); - packet.setAttribute("id", id); + packet.setAttribute("id", nextRandomId()); } if (callback != null) { synchronized (this.packetCallbacks) { -- cgit v1.2.3