Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2007-05-04 21:53:05 +0000
committerslewis2007-05-04 21:53:05 +0000
commitbf9bdcef865533a5c78b987d229ed1ac1f3cb6a1 (patch)
treedad53cfee8fd651eb9cb5fd93076c5cfed3c6fba /providers/bundles/org.eclipse.ecf.provider.xmpp
parent72c12a2c03e55934b2560a607275e9e253e66b5f (diff)
downloadorg.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')
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/internal/provider/xmpp/smack/ECFConnection.java9
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.xmpp/src/org/eclipse/ecf/provider/xmpp/XMPPContainer.java5
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;

Back to the top