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()) ok = false;
 205                 } else {
 206                     iter.remove();
 207                 }
 208             }
 209         }
 210         // Clear changed file list. The changed files were guaranteed to
 211         // have been in the cached file list (because there was a strong
 212         // reference from changedFiles.
 213         if (changedFiles != null) {
 214             Iterator<MacOSXPreferencesFile> iterChanged = changedFiles.iterator();
 215             while (iterChanged.hasNext()) {
 216                 MacOSXPreferencesFile f = iterChanged.next();
 217                 if (f != null && f.user == cfCurrentUser) 
 218                     iterChanged.remove();
 219              }
 220         }
 221         return ok;
 222     }
 223 
 224 
 225 
 226 
 227     // Write all prefs changes to disk, but do not clear all cached prefs
 228     // values. Also kills any scheduled flush task.
 229     // There's no CFPreferencesFlush() (<rdar://problem/3049129>), so lots of cached prefs
 230     // are cleared anyway.
 231     static synchronized boolean flushWorld()
 232     {
 233         boolean ok = true;
 234 
 235         if (changedFiles != null  &&  !changedFiles.isEmpty()) {
 236             Iterator iter = changedFiles.iterator();
 237             while (iter.hasNext()) {
 238                 MacOSXPreferencesFile f = (MacOSXPreferencesFile)iter.next();
 239                 if (!f.synchronize()) ok = false;
 240             }
 241 
 242             changedFiles.clear();
 243         }
 244 
 245         if (flushTimerTask != null) {
 246             flushTimerTask.cancel();