src/java.base/share/classes/java/net/Socket.java
changeset 55081 dd321e3596c0
parent 54689 b28b7f631301
child 55323 fc4042870cc4
child 57382 14e01d39c01a
--- a/src/java.base/share/classes/java/net/Socket.java	Wed May 29 08:21:33 2019 -0400
+++ b/src/java.base/share/classes/java/net/Socket.java	Wed May 29 13:58:05 2019 +0100
@@ -33,6 +33,7 @@
 import java.nio.channels.SocketChannel;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
+import java.util.Objects;
 import java.util.Set;
 import java.util.Collections;
 
@@ -1786,6 +1787,9 @@
      * @since 9
      */
     public <T> Socket setOption(SocketOption<T> name, T value) throws IOException {
+        Objects.requireNonNull(name);
+        if (isClosed())
+            throw new SocketException("Socket is closed");
         getImpl().setOption(name, value);
         return this;
     }
@@ -1815,6 +1819,9 @@
      */
     @SuppressWarnings("unchecked")
     public <T> T getOption(SocketOption<T> name) throws IOException {
+        Objects.requireNonNull(name);
+        if (isClosed())
+            throw new SocketException("Socket is closed");
         return getImpl().getOption(name);
     }