diff --git a/src/share/classes/java/util/prefs/Preferences.java b/src/share/classes/java/util/prefs/Preferences.java index 1c25cfdbc13273b3bd21870b2f09fd924100c5f6..1aad5d9f0ef9fb529960b72bf9723035e507aa06 100644 --- a/src/share/classes/java/util/prefs/Preferences.java +++ b/src/share/classes/java/util/prefs/Preferences.java @@ -32,9 +32,8 @@ import java.security.AccessController; import java.security.Permission; import java.security.PrivilegedAction; import java.util.Iterator; -import sun.misc.Service; -import sun.misc.ServiceConfigurationError; - +import java.util.ServiceLoader; +import java.util.ServiceConfigurationError; // These imports needed only as a workaround for a JavaDoc bug import java.lang.RuntimePermission; @@ -274,12 +273,14 @@ public abstract class Preferences { private static PreferencesFactory factory1() { // 2. Try service provider interface - Iterator i = Service.providers(PreferencesFactory.class, - ClassLoader.getSystemClassLoader()); + Iterator itr = ServiceLoader + .load(PreferencesFactory.class, ClassLoader.getSystemClassLoader()) + .iterator(); + // choose first provider instance - while (i.hasNext()) { + while (itr.hasNext()) { try { - return (PreferencesFactory) i.next(); + return itr.next(); } catch (ServiceConfigurationError sce) { if (sce.getCause() instanceof SecurityException) { // Ignore the security exception, try the next provider