diff options
author | michaelm <none@none> | 2011-09-09 14:04:44 +0100 |
---|---|---|
committer | michaelm <none@none> | 2011-09-09 14:04:44 +0100 |
commit | d8fe0535db82804c233d330a80fb6fc73dd588ef (patch) | |
tree | e6187ad552258937ea282bbc6030c86ae4a1351c /src/share/classes/java/net/DatagramSocket.java | |
parent | 98bb524f1127a6b9db2ef172e6f4c683bb3bcb5f (diff) | |
download | jdk8u_jdk-d8fe0535db82804c233d330a80fb6fc73dd588ef.tar.gz |
7085981: XXSocket types depend on impl finalizer to close if constructor throws exception
Reviewed-by: alanb, chegar
Diffstat (limited to 'src/share/classes/java/net/DatagramSocket.java')
-rw-r--r-- | src/share/classes/java/net/DatagramSocket.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/share/classes/java/net/DatagramSocket.java b/src/share/classes/java/net/DatagramSocket.java index 31db3393f5..7166c5f93e 100644 --- a/src/share/classes/java/net/DatagramSocket.java +++ b/src/share/classes/java/net/DatagramSocket.java @@ -174,9 +174,7 @@ class DatagramSocket implements java.io.Closeable { * @see SecurityManager#checkListen */ public DatagramSocket() throws SocketException { - // create a datagram socket. - createImpl(); - bind(new InetSocketAddress(0)); + this(new InetSocketAddress(0)); } /** @@ -221,7 +219,12 @@ class DatagramSocket implements java.io.Closeable { // create a datagram socket. createImpl(); if (bindaddr != null) { - bind(bindaddr); + try { + bind(bindaddr); + } finally { + if (!isBound()) + close(); + } } } |