diff -r e9df9d264894 -r dfca69ed7f87 jdk/src/share/classes/java/net/MulticastSocket.java --- a/jdk/src/share/classes/java/net/MulticastSocket.java Thu Sep 08 09:04:28 2011 +0800 +++ b/jdk/src/share/classes/java/net/MulticastSocket.java Fri Sep 09 14:04:44 2011 +0100 @@ -162,7 +162,12 @@ setReuseAddress(true); if (bindaddr != null) { - bind(bindaddr); + try { + bind(bindaddr); + } finally { + if (!isBound()) + close(); + } } }