diff options
author | Szymon Brandys | 2010-10-25 14:25:05 +0000 |
---|---|---|
committer | Szymon Brandys | 2010-10-25 14:25:05 +0000 |
commit | fb29cdcdc1eae34127e975142557dbd85d3cb43a (patch) | |
tree | 43bd2b61f38b4aeedd533e153387fce5af7f0541 | |
parent | 6af742d3ca74e91f3d294625f89fa31bdda84ee3 (diff) | |
download | eclipse.platform.team-fb29cdcdc1eae34127e975142557dbd85d3cb43a.tar.gz eclipse.platform.team-fb29cdcdc1eae34127e975142557dbd85d3cb43a.tar.xz eclipse.platform.team-fb29cdcdc1eae34127e975142557dbd85d3cb43a.zip |
bug 327672 - [Net] Error: "Preference node "org.eclipse.core.net" has been removed."
3 files changed, 24 insertions, 22 deletions
diff --git a/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/PreferenceManager.java b/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/PreferenceManager.java index 0d79ac7b0..31126053d 100644 --- a/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/PreferenceManager.java +++ b/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/PreferenceManager.java @@ -14,9 +14,9 @@ import org.eclipse.core.net.proxy.IProxyData; import org.eclipse.core.runtime.preferences.ConfigurationScope; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; -import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences.INodeChangeListener; import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener; +import org.eclipse.core.runtime.preferences.InstanceScope; import org.osgi.service.prefs.BackingStoreException; import org.osgi.service.prefs.Preferences; @@ -43,12 +43,10 @@ public class PreferenceManager { private static boolean migrated = false; private IEclipsePreferences defaultScope; - private IEclipsePreferences instanceScope; private IEclipsePreferences currentScope; private PreferenceManager(String id) { this.defaultScope = new DefaultScope().getNode(id); - this.instanceScope = new InstanceScope().getNode(id); } /** @@ -259,36 +257,36 @@ public class PreferenceManager { return; } currentScope.putBoolean(PREF_HAS_MIGRATED, true); - migrateInstanceScopePreferences(proxies, true); + migrateInstanceScopePreferences(new InstanceScope().getNode(Activator.ID), currentScope, proxies, true); } - void migrateInstanceScopePreferences(ProxyType[] proxies, boolean isInitialize) { - migrateUpdateHttpProxy(proxies, isInitialize); + void migrateInstanceScopePreferences(Preferences instanceScope, Preferences configuration, ProxyType[] proxies, boolean isInitialize) { + migrateUpdateHttpProxy(instanceScope, proxies, isInitialize); // migrate enabled status - if (currentScope.get(ProxyManager.PREF_ENABLED, null) == null) { + if (configuration.get(ProxyManager.PREF_ENABLED, null) == null) { String instanceEnabled = instanceScope.get(ProxyManager.PREF_ENABLED, null); if (instanceEnabled != null) - currentScope.put(ProxyManager.PREF_ENABLED, instanceEnabled); + configuration.put(ProxyManager.PREF_ENABLED, instanceEnabled); } // migrate enabled status - if (currentScope.get(ProxyManager.PREF_OS, null) == null) { + if (configuration.get(ProxyManager.PREF_OS, null) == null) { String instanceEnabled = instanceScope.get(ProxyManager.PREF_OS, null); if (instanceEnabled != null) - currentScope.put(ProxyManager.PREF_OS, instanceEnabled); + configuration.put(ProxyManager.PREF_OS, instanceEnabled); } // migrate non proxied hosts if not already set - if (currentScope.get(ProxyManager.PREF_NON_PROXIED_HOSTS, null) == null) { + if (configuration.get(ProxyManager.PREF_NON_PROXIED_HOSTS, null) == null) { String instanceNonProxiedHosts = instanceScope.get(ProxyManager.PREF_NON_PROXIED_HOSTS, null); if (instanceNonProxiedHosts != null) { - currentScope.put(ProxyManager.PREF_NON_PROXIED_HOSTS, instanceNonProxiedHosts); + configuration.put(ProxyManager.PREF_NON_PROXIED_HOSTS, instanceNonProxiedHosts); } } // migrate proxy data - PreferenceManager instanceManager = PreferenceManager.createInstanceManager(Activator.ID); + PreferenceManager instanceManager = PreferenceManager.createInstanceManager(instanceScope); for (int i = 0; i < proxies.length; i++) { ProxyType type = proxies[i]; IProxyData data = type.getProxyData(ProxyType.DO_NOT_VERIFY); @@ -310,7 +308,7 @@ public class PreferenceManager { } } - private void migrateUpdateHttpProxy(ProxyType[] proxies, boolean isInitialize) { + private void migrateUpdateHttpProxy(Preferences instanceScope, ProxyType[] proxies, boolean isInitialize) { if (!instanceScope.getBoolean(PREF_HAS_MIGRATED, false)) { // Only set the migration bit when initializing if (isInitialize) @@ -373,10 +371,9 @@ public class PreferenceManager { return httpProxyEnable; } - private static PreferenceManager createInstanceManager(String id) { - PreferenceManager manager = new PreferenceManager(id); - manager.currentScope = manager.instanceScope; + private static PreferenceManager createInstanceManager(Preferences instance) { + PreferenceManager manager = new PreferenceManager(Activator.ID); + manager.currentScope = (IEclipsePreferences) instance; return manager; } - } diff --git a/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/PreferenceModifyListener.java b/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/PreferenceModifyListener.java index dc8f86cbb..0f5198221 100644 --- a/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/PreferenceModifyListener.java +++ b/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/PreferenceModifyListener.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.core.internal.net; +import org.eclipse.core.runtime.preferences.ConfigurationScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.InstanceScope; import org.osgi.service.prefs.BackingStoreException; @@ -24,12 +25,13 @@ public class PreferenceModifyListener extends public IEclipsePreferences preApply(IEclipsePreferences node) { try { if (node.nodeExists(InstanceScope.SCOPE)) { - ((ProxyManager)ProxyManager.getProxyManager()).migrateInstanceScopePreferences(false); + ((ProxyManager)ProxyManager.getProxyManager()).migrateInstanceScopePreferences( + node.node(InstanceScope.SCOPE).node(Activator.ID), + node.node(ConfigurationScope.SCOPE).node(Activator.ID), false); } } catch (BackingStoreException e) { Activator.logError("Could not access instance preferences", e); //$NON-NLS-1$ } return super.preApply(node); } - } diff --git a/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/ProxyManager.java b/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/ProxyManager.java index 789bcd332..981b4906d 100644 --- a/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/ProxyManager.java +++ b/bundles/org.eclipse.core.net/src/org/eclipse/core/internal/net/ProxyManager.java @@ -35,6 +35,7 @@ import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChang import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent; import org.eclipse.osgi.util.NLS; import org.osgi.service.prefs.BackingStoreException; +import org.osgi.service.prefs.Preferences; public class ProxyManager implements IProxyService, IPreferenceChangeListener { @@ -403,8 +404,10 @@ public class ProxyManager implements IProxyService, IPreferenceChangeListener { preferenceManager.migrate(proxies); } - void migrateInstanceScopePreferences(boolean isInitialize) { - preferenceManager.migrateInstanceScopePreferences(proxies, isInitialize); + void migrateInstanceScopePreferences(Preferences instance, + Preferences configuration, boolean isInitialize) { + preferenceManager.migrateInstanceScopePreferences(instance, + configuration, proxies, isInitialize); } public void preferenceChange(PreferenceChangeEvent event) { |