< prev index next >

src/java.base/share/classes/java/net/ServerSocket.java

Print this page

        

*** 23,34 **** --- 23,39 ---- * questions. */ package java.net; + import jdk.internal.misc.JavaNetSocketAccess; + import jdk.internal.misc.SharedSecrets; + import java.io.FileDescriptor; import java.io.IOException; + import java.lang.reflect.Constructor; + import java.lang.reflect.InvocationTargetException; import java.nio.channels.ServerSocketChannel; import java.security.AccessController; import java.security.PrivilegedExceptionAction; import java.util.Set; import java.util.Collections;
*** 1009,1014 **** --- 1014,1042 ---- } optionsSet = true; return options; } } + + static { + SharedSecrets.setJavaNetSocketAccess( + new JavaNetSocketAccess() { + @Override + public ServerSocket newServerSocket(SocketImpl impl) { + return new ServerSocket(impl); + } + + @Override + public SocketImpl newSocketImpl(Class<? extends SocketImpl> implClass) { + try { + Constructor<? extends SocketImpl> ctor = + implClass.getDeclaredConstructor(); + return ctor.newInstance(); + } catch (NoSuchMethodException | InstantiationException | + IllegalAccessException | InvocationTargetException e) { + throw new AssertionError(e); + } + } + } + ); + } }
< prev index next >