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);
}
}