# HG changeset patch # User Chad Peckham # Date 1266261420 21600 # Node ID 9dba0e2abcff7dbaaf6dea42ad57742ed4cccf5b # Parent 9e8d63ac5a581512134ddd15350b1fd12788a5e0 Fix bug 10618 diff -r 9e8d63ac5a58 -r 9dba0e2abcff 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 Sun Feb 14 20:52:26 2010 -0600 +++ b/connectivity/com.nokia.carbide.remoteConnections.discovery.pccs/src/com/nokia/carbide/remoteconnections/discovery/pccs/agent/PCCSDiscoveryAgent.java Mon Feb 15 13:17:00 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); + } + } }