summaryrefslogtreecommitdiff
path: root/java/util/prefs/Preferences.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/util/prefs/Preferences.java')
-rw-r--r--java/util/prefs/Preferences.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/java/util/prefs/Preferences.java b/java/util/prefs/Preferences.java
index a78381bfa..297759d88 100644
--- a/java/util/prefs/Preferences.java
+++ b/java/util/prefs/Preferences.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package java.util.prefs;
+import gnu.classpath.ServiceFactory;
import gnu.java.util.prefs.NodeReader;
import java.io.IOException;
@@ -45,6 +46,7 @@ import java.io.OutputStream;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
+import java.util.Iterator;
/**
* Preference node containing key value entries and subnodes.
@@ -205,6 +207,17 @@ public abstract class Preferences {
}
});
+ // Still no factory? Try to see if we have one defined
+ // as a System Preference
+ if (factory == null)
+ {
+ Iterator iter = ServiceFactory.lookupProviders
+ (PreferencesFactory.class, null);
+
+ if (iter != null && iter.hasNext())
+ factory = (PreferencesFactory) iter.next();
+ }
+
// Still no factory? Use our default.
if (factory == null)
{