# HG changeset patch # User dadubrow # Date 1266261654 21600 # Node ID c018961ec23daae7b6d4361da4052fa221e4a98b # Parent 68b6a294ab0167de9a763181457e5490d85b8f30# Parent 9dba0e2abcff7dbaaf6dea42ad57742ed4cccf5b merge commit diff -r 68b6a294ab01 -r c018961ec23d 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:20:03 2010 -0600 +++ b/connectivity/com.nokia.carbide.remoteConnections.discovery.pccs/src/com/nokia/carbide/remoteconnections/discovery/pccs/agent/PCCSDiscoveryAgent.java Mon Feb 15 13:20:54 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); + } + } }