# HG changeset patch # User dadubrow # Date 1266263412 21600 # Node ID 945f32ff50e5c908ad486f8fb81d4bcfbcad8e15 # Parent d1e221a2875f18df04b5baa177a3e8aa1e50cf56# Parent d96d53142a8593d169ac0284a00783d4a8f1ce90 merge commit diff -r d1e221a2875f -r 945f32ff50e5 connectivity/com.nokia.carbide.remoteConnections.discovery.pccs/src/com/nokia/carbide/remoteconnections/discovery/pccs/agent/PCCSDiscoveryAgent.java --- a/connectivity/com.nokia.carbide.remoteConnections.discovery.pccs/src/com/nokia/carbide/remoteconnections/discovery/pccs/agent/PCCSDiscoveryAgent.java Mon Feb 15 13:49:01 2010 -0600 +++ b/connectivity/com.nokia.carbide.remoteConnections.discovery.pccs/src/com/nokia/carbide/remoteconnections/discovery/pccs/agent/PCCSDiscoveryAgent.java Mon Feb 15 13:50:12 2010 -0600 @@ -21,6 +21,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Set; import org.eclipse.core.runtime.CoreException; @@ -228,7 +229,7 @@ * @return */ private String createUniqueId(DeviceConnection conn) { - return getClass().getSimpleName() + ": " + conn.friendlyName; //$NON-NLS-1$ + return getClass().getSimpleName() + ": " + conn.friendlyName + ": " + conn.address; //$NON-NLS-1$ } /** @@ -271,8 +272,22 @@ } private void disconnectAll() { - for (IConnection2 connection : connections.values()) { - manager.disconnect(connection); + if (connections.isEmpty()) + return; + Set keySet = connections.keySet(); + for (String key : keySet) { + IConnection2 connection = connections.get(key); + // if manager knows about this connection, disconnect + // otherwise it has already been removed from our system + if (manager.findConnection(connection.getIdentifier()) != null) { + // not removed yet, disconnect only + manager.disconnect(connection); + } else { + // it's been removed from system + // remove it from our list also + connections.remove(key); + } + } }