Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDJ Houghton2009-10-30 18:18:28 +0000
committerDJ Houghton2009-10-30 18:18:28 +0000
commit4d6bc710bd2c17069e5902bafa9d71271d1d0fb5 (patch)
tree5007524c41153499c42139f7a0c9546e1fd7319a /bundles/org.eclipse.equinox.preferences
parent74f38c2f372ad5a2d53b282cf17f53aa97a76d41 (diff)
downloadrt.equinox.bundles-4d6bc710bd2c17069e5902bafa9d71271d1d0fb5.tar.gz
rt.equinox.bundles-4d6bc710bd2c17069e5902bafa9d71271d1d0fb5.tar.xz
rt.equinox.bundles-4d6bc710bd2c17069e5902bafa9d71271d1d0fb5.zip
Bug 158361 - [prefs] Thread safety problem in InstancePreferencesv20091102
Diffstat (limited to 'bundles/org.eclipse.equinox.preferences')
-rw-r--r--bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/ConfigurationPreferences.java9
-rw-r--r--bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/DefaultPreferences.java6
-rw-r--r--bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/InstancePreferences.java6
3 files changed, 10 insertions, 11 deletions
diff --git a/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/ConfigurationPreferences.java b/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/ConfigurationPreferences.java
index f27c3ec13..2941f2319 100644
--- a/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/ConfigurationPreferences.java
+++ b/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/ConfigurationPreferences.java
@@ -11,8 +11,7 @@
package org.eclipse.core.internal.preferences;
import java.net.URL;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.*;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
@@ -29,7 +28,7 @@ public class ConfigurationPreferences extends EclipsePreferences {
private IPath location;
private IEclipsePreferences loadLevel;
// cache which nodes have been loaded from disk
- private static Set loadedNodes = new HashSet();
+ private static Set loadedNodes = Collections.synchronizedSet(new HashSet());
private static boolean initialized = false;
private static IPath baseLocation;
@@ -74,11 +73,11 @@ public class ConfigurationPreferences extends EclipsePreferences {
return location;
}
- protected synchronized boolean isAlreadyLoaded(IEclipsePreferences node) {
+ protected boolean isAlreadyLoaded(IEclipsePreferences node) {
return loadedNodes.contains(node.name());
}
- protected synchronized void loaded() {
+ protected void loaded() {
loadedNodes.add(name());
}
diff --git a/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/DefaultPreferences.java b/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/DefaultPreferences.java
index 6dda6f4c6..c42f904b2 100644
--- a/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/DefaultPreferences.java
+++ b/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/DefaultPreferences.java
@@ -29,7 +29,7 @@ import org.osgi.util.tracker.ServiceTracker;
*/
public class DefaultPreferences extends EclipsePreferences {
// cache which nodes have been loaded from disk
- private static Set loadedNodes = new HashSet();
+ private static Set loadedNodes = Collections.synchronizedSet(new HashSet());
private static final String KEY_PREFIX = "%"; //$NON-NLS-1$
private static final String KEY_DOUBLE_PREFIX = "%%"; //$NON-NLS-1$
private static final IPath NL_DIR = new Path("$nl$"); //$NON-NLS-1$
@@ -221,7 +221,7 @@ public class DefaultPreferences extends EclipsePreferences {
return new DefaultPreferences(nodeParent, nodeName, context);
}
- protected synchronized boolean isAlreadyLoaded(IEclipsePreferences node) {
+ protected boolean isAlreadyLoaded(IEclipsePreferences node) {
return loadedNodes.contains(node.name());
}
@@ -287,7 +287,7 @@ public class DefaultPreferences extends EclipsePreferences {
return result;
}
- protected synchronized void loaded() {
+ protected void loaded() {
loadedNodes.add(name());
}
diff --git a/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/InstancePreferences.java b/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/InstancePreferences.java
index 15bdf4d84..685bd8972 100644
--- a/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/InstancePreferences.java
+++ b/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/InstancePreferences.java
@@ -29,7 +29,7 @@ public class InstancePreferences extends EclipsePreferences {
private IEclipsePreferences loadLevel;
private IPath location;
// cache which nodes have been loaded from disk
- private static Set loadedNodes = new HashSet();
+ private static Set loadedNodes = Collections.synchronizedSet(new HashSet());
private static boolean initialized = false;
private static IPath baseLocation;
@@ -71,11 +71,11 @@ public class InstancePreferences extends EclipsePreferences {
// accessed before the instance location is set.
}
- protected synchronized boolean isAlreadyLoaded(IEclipsePreferences node) {
+ protected boolean isAlreadyLoaded(IEclipsePreferences node) {
return loadedNodes.contains(node.name());
}
- protected synchronized void loaded() {
+ protected void loaded() {
loadedNodes.add(name());
}

Back to the top