diff --git a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchConnectionAttributes.java b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchConnectionAttributes.java index 6e3250f4be8..4ceaa0af373 100644 --- a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchConnectionAttributes.java +++ b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/JSchConnectionAttributes.java @@ -132,7 +132,7 @@ public class JSchConnectionAttributes { loadSecureAttributes(); return fSecureAttributes; } - + void setSecureAttributes(Map secureAttributes) { fSecureAttributes.clear(); fSecureAttributes.putAll(secureAttributes); @@ -165,9 +165,10 @@ public class JSchConnectionAttributes { } private void loadSecureAttributes() { - if (fSecureAttributesLoaded) + if (fSecureAttributesLoaded) { return; - + } + ISecurePreferences secNode = getSecurePreferences(); try { fSecureAttributes.clear(); @@ -199,7 +200,11 @@ public class JSchConnectionAttributes { Preferences node = getPreferences(); synchronized (fAttributes) { for (Entry entry : fAttributes.entrySet()) { - node.put(entry.getKey(), entry.getValue()); + if (entry.getValue() != null) { + node.put(entry.getKey(), entry.getValue()); + } else { + node.remove(entry.getKey()); + } } } if (fSecureAttributesLoaded) {