jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java
changeset 1335 79ed7fd4bb49
parent 715 f16baef3a20e
child 2446 07047237e4d4
--- a/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java	Mon Sep 15 00:41:02 2008 -0700
+++ b/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java	Mon Sep 22 15:53:58 2008 +0100
@@ -308,6 +308,12 @@
             FileDescriptor fd = acquireFD();
             try {
                 socketConnect(address, port, timeout);
+                /* socket may have been closed during poll/select */
+                synchronized (fdLock) {
+                    if (closePending) {
+                        throw new SocketException ("Socket closed");
+                    }
+                }
                 // If we have a ref. to the Socket, then sets the flags
                 // created, bound & connected to true.
                 // This is normally done in Socket.connect() but some