src/macosx/classes/java/util/prefs/MacOSXPreferencesFile.java
Print this page
@@ -99,13 +99,14 @@
MacOSXPreferencesFile.syncWorld();
}
}
// Maps string -> weak reference to MacOSXPreferencesFile
- private static HashMap cachedFiles = null;
+ private static HashMap<String, WeakReference<MacOSXPreferencesFile>>
+ cachedFiles = null;
// Files that may have unflushed changes
- private static HashSet changedFiles = null;
+ private static HashSet<MacOSXPreferencesFile> changedFiles = null;
// Timer and pending sync and flush tasks (which are both scheduled
// on the same timer)
private static Timer timer = null;
@@ -134,25 +135,26 @@
static synchronized MacOSXPreferencesFile
getFile(String newName, boolean isUser)
{
MacOSXPreferencesFile result = null;
- if (cachedFiles == null) cachedFiles = new HashMap();
+ if (cachedFiles == null)
+ cachedFiles = new HashMap<>();
String hashkey =
newName + String.valueOf(isUser);
- WeakReference hashvalue = (WeakReference)cachedFiles.get(hashkey);
+ WeakReference<MacOSXPreferencesFile> hashvalue = cachedFiles.get(hashkey);
if (hashvalue != null) {
- result = (MacOSXPreferencesFile)hashvalue.get();
+ result = hashvalue.get();
}
if (result == null) {
// Java user node == CF current user, any host
// Java system node == CF any user, current host
result = new MacOSXPreferencesFile(newName,
isUser ? cfCurrentUser : cfAnyUser,
isUser ? cfAnyHost : cfCurrentHost);
- cachedFiles.put(hashkey, new WeakReference(result));
+ cachedFiles.put(hashkey, new WeakReference<MacOSXPreferencesFile>(result));
}
// Don't schedule this file for flushing until some nodes or
// keys are added to it.
@@ -169,14 +171,15 @@
static synchronized boolean syncWorld()
{
boolean ok = true;
if (cachedFiles != null && !cachedFiles.isEmpty()) {
- Iterator iter = cachedFiles.values().iterator();
+ Iterator<WeakReference<MacOSXPreferencesFile>> iter =
+ cachedFiles.values().iterator();
while (iter.hasNext()) {
- WeakReference ref = (WeakReference)iter.next();
- MacOSXPreferencesFile f = (MacOSXPreferencesFile)ref.get();
+ WeakReference<MacOSXPreferencesFile> ref = iter.next();
+ MacOSXPreferencesFile f = ref.get();
if (f != null) {
if (!f.synchronize()) ok = false;
} else {
iter.remove();
}
@@ -200,14 +203,15 @@
// Sync only current user preferences
static synchronized boolean syncUser() {
boolean ok = true;
if (cachedFiles != null && !cachedFiles.isEmpty()) {
- Iterator<WeakReference> iter = cachedFiles.values().iterator();
+ Iterator<WeakReference<MacOSXPreferencesFile>> iter =
+ cachedFiles.values().iterator();
while (iter.hasNext()) {
- WeakReference ref = iter.next();
- MacOSXPreferencesFile f = (MacOSXPreferencesFile)ref.get();
+ WeakReference<MacOSXPreferencesFile> ref = iter.next();
+ MacOSXPreferencesFile f = ref.get();
if (f != null && f.user == cfCurrentUser) {
if (!f.synchronize()) {
ok = false;
}
} else {
@@ -238,16 +242,14 @@
static synchronized boolean flushWorld()
{
boolean ok = true;
if (changedFiles != null && !changedFiles.isEmpty()) {
- Iterator iter = changedFiles.iterator();
- while (iter.hasNext()) {
- MacOSXPreferencesFile f = (MacOSXPreferencesFile)iter.next();
- if (!f.synchronize()) ok = false;
+ for (MacOSXPreferencesFile f : changedFiles) {
+ if (!f.synchronize())
+ ok = false;
}
-
changedFiles.clear();
}
if (flushTimerTask != null) {
flushTimerTask.cancel();
@@ -261,11 +263,12 @@
// at most flushDelay() seconds.
// Must be called when synchronized on MacOSXPreferencesFile.class
private void markChanged()
{
// Add this file to the changed file list
- if (changedFiles == null) changedFiles = new HashSet();
+ if (changedFiles == null)
+ changedFiles = new HashSet<>();
changedFiles.add(this);
// Schedule a new flush and a shutdown hook, if necessary
if (flushTimerTask == null) {
flushTimerTask = new FlushTask();
@@ -307,11 +310,13 @@
syncInterval = -2; // bad property value - default off
}
if (syncInterval > 0) {
timer().schedule(new TimerTask() {
- public void run() { MacOSXPreferencesFile.syncWorld();}
+ @Override
+ public void run() {
+ MacOSXPreferencesFile.syncWorld();}
}, syncInterval * 1000, syncInterval * 1000);
} else {
// syncInterval property not set. No sync timer ever.
}
}
@@ -321,10 +326,11 @@
private static synchronized Timer timer()
{
if (timer == null) {
timer = new Timer(true); // daemon
Thread flushThread = new Thread() {
+ @Override
public void run() {
flushWorld();
}
};
/* Set context class loader to null in order to avoid