--- a/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java Fri Oct 07 14:09:53 2011 +0100
+++ b/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java Mon Oct 10 10:38:35 2011 +0100
@@ -86,10 +86,11 @@
* is a stream socket (true) or an unconnected UDP socket (false).
*/
protected synchronized void create(boolean stream) throws IOException {
- fd = new FileDescriptor();
this.stream = stream;
if (!stream) {
ResourceManager.beforeUdpCreate();
+ // only create the fd after we know we will be able to create the socket
+ fd = new FileDescriptor();
try {
socketCreate(false);
} catch (IOException ioe) {
@@ -98,6 +99,7 @@
throw ioe;
}
} else {
+ fd = new FileDescriptor();
socketCreate(true);
}
if (socket != null)