--- old/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java Fri Dec 2 11:21:52 2011 +++ new/src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java Fri Dec 2 11:21:52 2011 @@ -25,7 +25,6 @@ package com.sun.net.httpserver.spi; -import java.io.FileDescriptor; import java.io.IOException; import java.net.*; import java.security.AccessController; @@ -32,43 +31,52 @@ import java.security.PrivilegedAction; import java.util.Iterator; import java.util.ServiceLoader; -import sun.misc.ServiceConfigurationError; -import sun.security.action.GetPropertyAction; +import java.util.ServiceConfigurationError; import com.sun.net.httpserver.*; /** * Service provider class for HttpServer. - * Sub-classes of HttpServerProvider provide an implementation of {@link HttpServer} and - * associated classes. Applications do not normally use this class. - * See {@link #provider()} for how providers are found and loaded. + * Sub-classes of HttpServerProvider provide an implementation of + * {@link HttpServer} and associated classes. Applications do not normally use + * this class. See {@link #provider()} for how providers are found and loaded. */ public abstract class HttpServerProvider { /** * creates a HttpServer from this provider - * @param addr the address to bind to. May be null - * @param backlog the socket backlog. A value of zero means the systems default + * + * @param addr + * the address to bind to. May be {@code null} + * + * @param backlog + * the socket backlog. A value of {@code zero} means the systems default */ - public abstract HttpServer createHttpServer (InetSocketAddress addr, int backlog) throws IOException; + public abstract HttpServer createHttpServer(InetSocketAddress addr, + int backlog) + throws IOException; /** * creates a HttpsServer from this provider - * @param addr the address to bind to. May be null - * @param backlog the socket backlog. A value of zero means the systems default + * + * @param addr + * the address to bind to. May be {@code null} + * + * @param backlog + * the socket backlog. A value of {@code zero} means the systems default */ - public abstract HttpsServer createHttpsServer (InetSocketAddress addr, int backlog) throws IOException; + public abstract HttpsServer createHttpsServer(InetSocketAddress addr, + int backlog) + throws IOException; - - private static final Object lock = new Object(); private static HttpServerProvider provider = null; /** - * Initializes a new instance of this class.

+ * Initializes a new instance of this class. * * @throws SecurityException * If a security manager has been installed and it denies - * {@link RuntimePermission}("httpServerProvider") + * {@link RuntimePermission}{@code("httpServerProvider")} */ protected HttpServerProvider() { SecurityManager sm = System.getSecurityManager(); @@ -82,7 +90,7 @@ return false; try { Class c = Class.forName(cn, true, - ClassLoader.getSystemClassLoader()); + ClassLoader.getSystemClassLoader()); provider = (HttpServerProvider)c.newInstance(); return true; } catch (ClassNotFoundException | @@ -89,7 +97,7 @@ IllegalAccessException | InstantiationException | SecurityException x) { - throw new ServiceConfigurationError(x); + throw new ServiceConfigurationError(null, x); } } @@ -96,7 +104,7 @@ private static boolean loadProviderAsService() { Iterator i = ServiceLoader.load(HttpServerProvider.class, - ClassLoader.getSystemClassLoader()) + ClassLoader.getSystemClassLoader()) .iterator(); for (;;) { try { @@ -124,8 +132,8 @@ *
    * *
  1. If the system property - * com.sun.net.httpserver.HttpServerProvider is defined then it is - * taken to be the fully-qualified name of a concrete provider class. + * {@code com.sun.net.httpserver.HttpServerProvider} is defined then it + * is taken to be the fully-qualified name of a concrete provider class. * The class is loaded and instantiated; if this process fails then an * unspecified unchecked error or exception is thrown.

  2. * @@ -132,11 +140,11 @@ *
  3. If a provider class has been installed in a jar file that is * visible to the system class loader, and that jar file contains a * provider-configuration file named - * com.sun.net.httpserver.HttpServerProvider in the resource + * {@code com.sun.net.httpserver.HttpServerProvider} in the resource * directory META-INF/services, then the first class name * specified in that file is taken. The class is loaded and - * instantiated; if this process fails then an unspecified unchecked error or exception is - * thrown.

  4. + * instantiated; if this process fails then an unspecified unchecked error + * or exception is thrown.

    * *
  5. Finally, if no provider has been specified by any of the above * means then the system-default provider class is instantiated and the