diff options
author | slewis | 2007-05-04 21:53:05 +0000 |
---|---|---|
committer | slewis | 2007-05-04 21:53:05 +0000 |
commit | bf9bdcef865533a5c78b987d229ed1ac1f3cb6a1 (patch) | |
tree | dad53cfee8fd651eb9cb5fd93076c5cfed3c6fba /providers/bundles/org.eclipse.ecf.provider.xmpp | |
parent | 72c12a2c03e55934b2560a607275e9e253e66b5f (diff) | |
download | org.eclipse.ecf-bf9bdcef865533a5c78b987d229ed1ac1f3cb6a1.tar.gz org.eclipse.ecf-bf9bdcef865533a5c78b987d229ed1ac1f3cb6a1.tar.xz org.eclipse.ecf-bf9bdcef865533a5c78b987d229ed1ac1f3cb6a1.zip |
Fixed account disconnect in MultiRosterViewv20070504-1522
Diffstat (limited to 'providers/bundles/org.eclipse.ecf.provider.xmpp')
2 files changed, 7 insertions, 7 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java index 57cee2070..b870f06cb 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java @@ -63,6 +63,8 @@ public class ECFConnection implements ISynchAsynchConnection { protected boolean secure = false; + protected boolean disconnecting = false; + protected void debug(String msg) { } @@ -178,7 +180,7 @@ public class ECFConnection implements ISynchAsynchConnection { return null; } - public synchronized void disconnect() throws IOException { + public synchronized void disconnect() { debug("disconnect()"); if (isStarted()) { stop(); @@ -221,7 +223,10 @@ public class ECFConnection implements ISynchAsynchConnection { } protected void handleConnectionClosed(Exception e) { - handler.handleDisconnectEvent(new DisconnectEvent(this, e, null)); + if (!disconnecting) { + disconnecting = true; + handler.handleDisconnectEvent(new DisconnectEvent(this, e, null)); + } } protected void handlePacket(Packet arg0) { diff --git a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPContainer.java b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPContainer.java index abe71aaa2..8077fa9e7 100644 --- a/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPContainer.java +++ b/providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPContainer.java @@ -187,11 +187,6 @@ public class XMPPContainer extends ClientSOContainer implements synchronized (getGroupMembershipLock()) { memberLeave(groupID, null); } - try { - conn.disconnect(); - } catch (IOException e) { - dumpStack("Exception disconnecting", e); - } } } connectionState = DISCONNECTED; |