Bug 486593 - fix encoding of connection names

Change-Id: If7ead4315e3ad3e755ebb06f31520bde28e44c56
Signed-off-by: Greg Watson <g.watson@computer.org>
diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnection.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnection.java
index 7b44754..3812e18 100644
--- a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnection.java
+++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnection.java
@@ -114,14 +114,14 @@
 				throw new ConnectionExistsException(newName);
 			}
 
-			Preferences newPrefs = connectionType.getPreferenceNode().node(newName);
+			Preferences newPrefs = connectionType.getPreferenceNode().node(URLEncoder.encode(newName, "UTF-8"));
 			Preferences oldPrefs = getPreferences();
 			for (String key : oldPrefs.keys()) {
 				newPrefs.put(key, oldPrefs.get(key, null));
 			}
 
 			oldPrefs.removeNode();
-		} catch (BackingStoreException e) {
+		} catch (BackingStoreException | UnsupportedEncodingException e) {
 			RemoteCorePlugin.log(e);
 		}
 
diff --git a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionType.java b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionType.java
index c7cde9b..94f44aa 100644
--- a/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionType.java
+++ b/bundles/org.eclipse.remote.core/src/org/eclipse/remote/internal/core/RemoteConnectionType.java
@@ -10,7 +10,10 @@
  *******************************************************************************/
 package org.eclipse.remote.internal.core;
 
+import java.io.UnsupportedEncodingException;
 import java.net.URI;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -68,10 +71,11 @@
 		
 		// load up existing connections
 		try {
-			for (String connectionName : getPreferenceNode().childrenNames()) {
+			for (String nodeName : getPreferenceNode().childrenNames()) {
+				String connectionName = URLDecoder.decode(nodeName, "UTF-8");
 				connections.put(connectionName, new RemoteConnection(this, connectionName));
 			}
-		} catch (BackingStoreException e) {
+		} catch (BackingStoreException | UnsupportedEncodingException e) {
 			RemoteCorePlugin.log(e);
 		}
 	}