Hi there,

While working on netty I just noticed that a ServerSocket will keep return true 
when isBound() is called even after it was closed. Is this by design? I was bit 
surprised by this honestly as after the socket is closed there is no way it 
will accept any more connections.

If this is by design should we at least update the java docs ?

https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/net/ServerSocket.html#isBound()
 
<https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/net/ServerSocket.html#isBound()>

In contrast for DatagramSocket it is directly called out:

https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/net/DatagramSocket.html#isBound()
 
<https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/net/DatagramSocket.html#isBound()>

So I wonder if it was mainly done the same way for a ServerSocket to be more 
consistent here or if it is just an oversight.

This code shows the behaviour. 

ServerSocket socket = new ServerSocket(0);

socket.close();
if (socket.isBound()) {
    throw new AssertionError();
}



Thanks,
Norman

Reply via email to