src/macosx/classes/java/util/prefs/MacOSXPreferencesFile.java
Print this page
*** 190,199 ****
--- 190,231 ----
return ok;
}
+ // Sync only current user preferences
+ static synchronized boolean syncUser() {
+ boolean ok = true;
+ if (cachedFiles != null && !cachedFiles.isEmpty()) {
+ Iterator<WeakReference> iter = cachedFiles.values().iterator();
+ while (iter.hasNext()) {
+ WeakReference ref = iter.next();
+ MacOSXPreferencesFile f = (MacOSXPreferencesFile)ref.get();
+ if (f != null && f.user == cfCurrentUser) {
+ if (!f.synchronize()) ok = false;
+ } else {
+ iter.remove();
+ }
+ }
+ }
+ // Clear changed file list. The changed files were guaranteed to
+ // have been in the cached file list (because there was a strong
+ // reference from changedFiles.
+ if (changedFiles != null) {
+ Iterator<MacOSXPreferencesFile> iterChanged = changedFiles.iterator();
+ while (iterChanged.hasNext()) {
+ MacOSXPreferencesFile f = iterChanged.next();
+ if (f != null && f.user == cfCurrentUser)
+ iterChanged.remove();
+ }
+ }
+ return ok;
+ }
+
+
+
+
// Write all prefs changes to disk, but do not clear all cached prefs
// values. Also kills any scheduled flush task.
// There's no CFPreferencesFlush() (<rdar://problem/3049129>), so lots of cached prefs
// are cleared anyway.
static synchronized boolean flushWorld()