RFR[8235783]: DatagramSocket::disconnect should allow an implementation to throw UncheckedIOException

Alan Bateman Alan.Bateman at oracle.com
Wed Dec 18 11:09:03 UTC 2019


On 18/12/2019 10:55, Daniel Fuchs wrote:
> We already have two implementations of DatagramSocket: one is the plain
> DatagramSocket, the other is the DatagramSocket adapter created by
> DatagramChannel::socket.
>
> Even without preparing for DatagramSocket reimplementation this
> is a step forward in homogenizing these two implementations in
> the spec.
>
> Oh - I see DatagramChannel::socket adapter also behaves like this
> and explicitly ignores the ClosedChannelException.
>
> Is there any reason for letting connect go through if the socket
> is closed? I mean - should we change the spec/behavior of
> DatagramSocket (and the adapter) to throw in that case?
Changing DatagramSocket connect to throw an exception when the socket is 
closed would be an incompatible change so I think this is a case where 
the spec will just need to align with long standing behavior. The 
disconnect method already specifies that it is a no-op when the socket 
is closed so at least they will be consistent.

BTW: I think socket adaptor behavior should take a back seat in any spec 
discussions as its raison d'etre was to support binding and socket 
options. It does have to do a few ugly things in places (like catch 
ClosedChannelException) but this is only because it emulate legacy 
DatagramSocket behavior (both specified and unspecified).

-Alan.


More information about the net-dev mailing list