aboutsummaryrefslogtreecommitdiff
path: root/src/share/classes/java/net/DatagramSocket.java
diff options
context:
space:
mode:
authormichaelm <none@none>2011-09-09 14:04:44 +0100
committermichaelm <none@none>2011-09-09 14:04:44 +0100
commitd8fe0535db82804c233d330a80fb6fc73dd588ef (patch)
treee6187ad552258937ea282bbc6030c86ae4a1351c /src/share/classes/java/net/DatagramSocket.java
parent98bb524f1127a6b9db2ef172e6f4c683bb3bcb5f (diff)
downloadjdk8u_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.java11
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();
+ }
}
}