jdk/src/macosx/classes/java/util/prefs/MacOSXPreferencesFile.java
changeset 12553 cf79383bbfaf
parent 12047 320a714614e9
child 12559 9456ceada8b1
equal deleted inserted replaced
12552:06a22aed06d1 12553:cf79383bbfaf
   188         // reference from changedFiles.
   188         // reference from changedFiles.
   189         if (changedFiles != null) changedFiles.clear();
   189         if (changedFiles != null) changedFiles.clear();
   190 
   190 
   191         return ok;
   191         return ok;
   192     }
   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         // Remove 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 
   193 
   226 
   194 
   227 
   195     // Write all prefs changes to disk, but do not clear all cached prefs
   228     // Write all prefs changes to disk, but do not clear all cached prefs
   196     // values. Also kills any scheduled flush task.
   229     // values. Also kills any scheduled flush task.
   197     // There's no CFPreferencesFlush() (<rdar://problem/3049129>), so lots of cached prefs
   230     // There's no CFPreferencesFlush() (<rdar://problem/3049129>), so lots of cached prefs