The changes look fine to me. Thanks for taking care of this one.

-Chris.

On 07/22/11 06:31 PM, Kurchi Hazra wrote:

Hi,

   I changed the implementation according to Brad's comments. I am
reposting the output of hg diff
src/share/classes/java/net/DatagramSocket.java since I don't have an
openjdk account:

bash-3.00$ hg diff src/share/classes/java/net/DatagramSocket.java
diff --git a/src/share/classes/java/net/DatagramSocket.java
b/src/share/classes/java/net/DatagramSocket.java
--- a/src/share/classes/java/net/DatagramSocket.java
+++ b/src/share/classes/java/net/DatagramSocket.java
@@ -176,13 +176,7 @@ class DatagramSocket implements java.io.
      public DatagramSocket() throws SocketException {
          // create a datagram socket.
          createImpl();
-        try {
-            bind(new InetSocketAddress(0));
-        } catch (SocketException se) {
-            throw se;
-        } catch(IOException e) {
-            throw new SocketException(e.getMessage());
-        }
+        bind(new InetSocketAddress(0));
      }


Thanks,
Kurchi



On 7/22/2011 7:25 AM, Michael McMahon wrote:
On 22/07/11 14:55, Alan Bateman wrote:
Michael McMahon wrote:
But, bind() already closes the impl internally before throwing the
exception.
I was wondering about that and whether this is a bug. Suppose someone
creates an unbound DatagramSocket and then attempts to bind it to a
port. If the bind fails (say port already in use) then it may be
surprising that they can't retry with a different port.  Should this
be specified? I see there are cases such as the security exception
where it doesn't the close the impl.

-Alan.
It doesn't seem to be specified either way, though it does seem to be
inconsistent.
I'd be wary about changing the behaviour though
unless there was a strong justification (more than a compiler warning :) )

- Michael.


Reply via email to