src/macosx/classes/java/util/prefs/MacOSXPreferencesFile.java

Print this page




 175                     iter.remove();
 176                 }
 177             }
 178         }
 179 
 180         // Kill any pending flush
 181         if (flushTimerTask != null) {
 182             flushTimerTask.cancel();
 183             flushTimerTask = null;
 184         }
 185 
 186         // Clear changed file list. The changed files were guaranteed to
 187         // have been in the cached file list (because there was a strong
 188         // reference from changedFiles.
 189         if (changedFiles != null) changedFiles.clear();
 190 
 191         return ok;
 192     }
 193 
 194 


































 195     // Write all prefs changes to disk, but do not clear all cached prefs
 196     // values. Also kills any scheduled flush task.
 197     // There's no CFPreferencesFlush() (<rdar://problem/3049129>), so lots of cached prefs
 198     // are cleared anyway.
 199     static synchronized boolean flushWorld()
 200     {
 201         boolean ok = true;
 202 
 203         if (changedFiles != null  &&  !changedFiles.isEmpty()) {
 204             Iterator iter = changedFiles.iterator();
 205             while (iter.hasNext()) {
 206                 MacOSXPreferencesFile f = (MacOSXPreferencesFile)iter.next();
 207                 if (!f.synchronize()) ok = false;
 208             }
 209 
 210             changedFiles.clear();
 211         }
 212 
 213         if (flushTimerTask != null) {
 214             flushTimerTask.cancel();




 175                     iter.remove();
 176                 }
 177             }
 178         }
 179 
 180         // Kill any pending flush
 181         if (flushTimerTask != null) {
 182             flushTimerTask.cancel();
 183             flushTimerTask = null;
 184         }
 185 
 186         // Clear changed file list. The changed files were guaranteed to
 187         // have been in the cached file list (because there was a strong
 188         // reference from changedFiles.
 189         if (changedFiles != null) changedFiles.clear();
 190 
 191         return ok;
 192     }
 193 
 194 
 195     // Sync only current user preferences
 196     static synchronized boolean syncUser() {
 197         boolean ok = true;
 198         if (cachedFiles != null  &&  !cachedFiles.isEmpty()) {
 199             Iterator<WeakReference> iter = cachedFiles.values().iterator();
 200             while (iter.hasNext()) {
 201                 WeakReference ref = iter.next();
 202                 MacOSXPreferencesFile f = (MacOSXPreferencesFile)ref.get();
 203                 if (f != null && f.user == cfCurrentUser) {
 204                     if (!f.synchronize()) { 
 205                         ok = false;
 206                     }
 207                 } else {
 208                     iter.remove();
 209                 }
 210             }
 211         }
 212         // Renove synchronized file from changed file list. The changed files were 
 213         // guaranteed to have been in the cached file list (because there was a strong
 214         // reference from changedFiles.
 215         if (changedFiles != null) {
 216             Iterator<MacOSXPreferencesFile> iterChanged = changedFiles.iterator();
 217             while (iterChanged.hasNext()) {
 218                 MacOSXPreferencesFile f = iterChanged.next();
 219                 if (f != null && f.user == cfCurrentUser) 
 220                     iterChanged.remove();
 221              }
 222         }
 223         return ok;
 224     }
 225 
 226 
 227 
 228 
 229     // Write all prefs changes to disk, but do not clear all cached prefs
 230     // values. Also kills any scheduled flush task.
 231     // There's no CFPreferencesFlush() (<rdar://problem/3049129>), so lots of cached prefs
 232     // are cleared anyway.
 233     static synchronized boolean flushWorld()
 234     {
 235         boolean ok = true;
 236 
 237         if (changedFiles != null  &&  !changedFiles.isEmpty()) {
 238             Iterator iter = changedFiles.iterator();
 239             while (iter.hasNext()) {
 240                 MacOSXPreferencesFile f = (MacOSXPreferencesFile)iter.next();
 241                 if (!f.synchronize()) ok = false;
 242             }
 243 
 244             changedFiles.clear();
 245         }
 246 
 247         if (flushTimerTask != null) {
 248             flushTimerTask.cancel();