honor current connection id in ensureConnection
authordadubrow
Thu, 11 Feb 2010 13:42:02 -0600
changeset 938 643f4c09ab7b
parent 936 e71a43ae864a
child 942 2ed87b202d5c
honor current connection id in ensureConnection
connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/internal/registry/Registry.java
--- a/connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/internal/registry/Registry.java	Thu Feb 11 11:50:56 2010 -0600
+++ b/connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/internal/registry/Registry.java	Thu Feb 11 13:42:02 2010 -0600
@@ -517,6 +517,7 @@
 	
 	public ISelectedConnectionInfo ensureConnection(String id, IService service) throws CoreException {
 		Check.checkArg(service);
+		final boolean wasCurrentConnection = id.equals(CURRENT_CONNECTION_ID);
 		final IConnection[] connectionHolder = { findConnection(id) };
 		final String[] storableIdHolder = { id };
 		if (!isCompatibleConnection(connectionHolder[0], service)) {
@@ -526,6 +527,10 @@
 						Logging.newStatus(RemoteConnectionsActivator.getDefault(), IStatus.ERROR, 
 								Messages.getString("Registry.NoCompatibleConnectionMsg"))); //$NON-NLS-1$
 			}
+			else if (wasCurrentConnection && !connectionHolder[0].getIdentifier().equals(CURRENT_CONNECTION_ID)) {
+				setCurrentConnection(connectionHolder[0]);
+				storableIdHolder[0] = CURRENT_CONNECTION_ID;
+			}
 		}
 		return new ISelectedConnectionInfo() {
 			public String getStorableId() {