ServerSocket.isBound() continue to return true after close() is called.

Norman Maurer norman.maurer at googlemail.com
Thu Apr 11 15:27:26 UTC 2019


Ok thanks… update to the java docs sounds good to me. I was just suprised by the behaviour :)

> On 11. Apr 2019, at 17:12, Michael McMahon <michael.x.mcmahon at oracle.com> wrote:
> 
> Norman
> 
> The specification on what happens to all socket types was updated many years ago
> in bug id 6505016, but it looks like ServerSocket::isBound was missed from that effort.
> I think we should probably update the spec to reflect current behavior and be consistent
> with the change above. There will be some small spec updates to ServerSocket coming
> which originated from the SocketImpl replacement work that Alan mentioned recently
> and I think we can include this small change probably with one of those.
> 
> Michael.
> 
> On 11/04/2019, 13:40, Norman Maurer wrote:
>> 
>> 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%28%29>
>> 
>> 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%28%29>
>> 
>> 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/98880f2b/attachment-0001.html>


More information about the net-dev mailing list