ServerSocket.isBound() continue to return true after close() is called.
Norman Maurer
norman.maurer at googlemail.com
Thu Apr 11 12:40:53 UTC 2019
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/net-dev/attachments/20190411/1e65f313/attachment.html>
More information about the net-dev
mailing list