diff options
Diffstat (limited to 'libjava/classpath/java/util/prefs/AbstractPreferences.java')
-rw-r--r-- | libjava/classpath/java/util/prefs/AbstractPreferences.java | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/libjava/classpath/java/util/prefs/AbstractPreferences.java b/libjava/classpath/java/util/prefs/AbstractPreferences.java index f3a62e6980d..9562e1bbf5b 100644 --- a/libjava/classpath/java/util/prefs/AbstractPreferences.java +++ b/libjava/classpath/java/util/prefs/AbstractPreferences.java @@ -38,7 +38,8 @@ exception statement from your version. */ package java.util.prefs; -import gnu.java.util.prefs.EventDispatcher; +import gnu.classpath.toolkit.DefaultDaemonThreadFactory; +import gnu.java.lang.CPStringBuilder; import gnu.java.util.prefs.NodeWriter; import java.io.ByteArrayOutputStream; @@ -49,6 +50,8 @@ import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.TreeSet; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; /** * Partial implementation of a Preference node. @@ -841,7 +844,7 @@ public abstract class AbstractPreferences extends Preferences { * Helper method for encoding an array of bytes as a Base64 String. */ private static String encode64(byte[] b) { - StringBuffer sb = new StringBuffer((b.length/3)*4); + CPStringBuilder sb = new CPStringBuilder((b.length/3)*4); int i = 0; int remaining = b.length; @@ -1236,17 +1239,18 @@ public abstract class AbstractPreferences extends Preferences { */ private void fire(final PreferenceChangeEvent event) { - Iterator it = preferenceListeners.iterator(); - while (it.hasNext()) + for (final PreferenceChangeListener listener : preferenceListeners) { - final PreferenceChangeListener l = (PreferenceChangeListener) it.next(); - EventDispatcher.dispatch(new Runnable() - { - public void run() - { - l.preferenceChange(event); - } - }); + Runnable dispatcher = new Runnable() { + public void run() + { + listener.preferenceChange(event); + } + }; + + Executor executor = + Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory()); + executor.execute(dispatcher); } } @@ -1258,20 +1262,21 @@ public abstract class AbstractPreferences extends Preferences { */ private void fire(final NodeChangeEvent event, final boolean added) { - Iterator it = nodeListeners.iterator(); - while (it.hasNext()) + for (final NodeChangeListener listener : nodeListeners) { - final NodeChangeListener l = (NodeChangeListener) it.next(); - EventDispatcher.dispatch(new Runnable() - { - public void run() - { - if (added) - l.childAdded(event); - else - l.childRemoved(event); - } - }); + Runnable dispatcher = new Runnable() { + public void run() + { + if (added) + listener.childAdded(event); + else + listener.childRemoved(event); + } + }; + + Executor executor = + Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory()); + executor.execute(dispatcher); } } |