Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordj2011-10-11 19:33:21 +0000
committerdj2011-10-11 19:33:21 +0000
commitf81da88c2918758cb73695b3ebd3931670fcfb7a (patch)
tree071ebb944b4f4a6f71b6ac9e8ff7446f6565fa2c
parent2607f050eb20c418a2b56437cdb388a397ebc207 (diff)
downloadrt.equinox.bundles-f81da88c2918758cb73695b3ebd3931670fcfb7a.tar.gz
rt.equinox.bundles-f81da88c2918758cb73695b3ebd3931670fcfb7a.tar.xz
rt.equinox.bundles-f81da88c2918758cb73695b3ebd3931670fcfb7a.zip
Bug 351231 - [prefs] EclipsePreferences#flush method should bev20111011-1933R37x_v20111011-1530R37x_v20111011
synchronized
-rw-r--r--bundles/org.eclipse.equinox.preferences/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/EclipsePreferences.java10
2 files changed, 10 insertions, 2 deletions
diff --git a/bundles/org.eclipse.equinox.preferences/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.preferences/META-INF/MANIFEST.MF
index 28881c6e8..4a168b61f 100644
--- a/bundles/org.eclipse.equinox.preferences/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.preferences/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.equinox.preferences; singleton:=true
-Bundle-Version: 3.4.1.qualifier
+Bundle-Version: 3.4.2.qualifier
Bundle-Activator: org.eclipse.core.internal.preferences.Activator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/EclipsePreferences.java b/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/EclipsePreferences.java
index 816bd10e0..10dbe6c11 100644
--- a/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/EclipsePreferences.java
+++ b/bundles/org.eclipse.equinox.preferences/src/org/eclipse/core/internal/preferences/EclipsePreferences.java
@@ -322,7 +322,15 @@ public class EclipsePreferences implements IEclipsePreferences, IScope {
/*
* @see org.osgi.service.prefs.Preferences#flush()
*/
- public void flush() throws BackingStoreException {
+ synchronized public void flush() throws BackingStoreException {
+ internalFlush();
+ }
+
+ /*
+ * Do the real flushing in a non-synchronized internal method so sub-classes
+ * (mainly ProjectPreferences and ProfilePreferences) don't cause deadlocks.
+ */
+ protected void internalFlush() throws BackingStoreException {
// illegal state if this node has been removed
checkRemoved();

Back to the top