RFR[8241072]: 'Reimplement Legacy DatagramSocket API'

Alan Bateman Alan.Bateman at oracle.com
Sun Apr 12 15:51:50 UTC 2020


On 09/04/2020 12:26, Patrick Concannon wrote:
>
> Hi,
>
> Alan - I've gone through your comments and refactored the code 
> accordingly.
>
Just a few minor comments on the implementation changes.

DatagramSocket.java
- this version of the webrev has a block comment "A global switch ..." 
that looks like it was added in the wrong place. I assume it can be 
removed or a subset of the text moved into the command for createDelegate
- toSocketException can be private
- the comment on the delegate field could be shortened by dropping 
"`delegate` can be". That is, it would be a clearer for readers to just 
say "any instance ..."
- Another minor nit but the comment on the delegate() method could 
confuse readers. I think you can drop it or just say that it can be 
overridden to return a MulticastSocket.
- The  new // comments added to the asserts at L133-136 aren't useful, I 
suggest just drop them as the asserts are clear as they are.

DatagramSocketAdaptor
- this version has re-formatted existing code in several places. Can you 
undo these changes (I can't tell if they were deliberate or the IDE did 
it). The only changes should be to be super call and the addition of the 
DatagramSockets helper class.

MulticastSocket and NetMulticastSocket look good.

> I spoke with Daniel about the SendBufCheck test, and he wants to keep 
> this in the JEP as it allows to compare the behavior of all the 
> different implementations in one place.
>
I don't think SetGetSendBufferSize should be in the webrev. It has @bug 
8239355 so it's for a different issue.

I also don't think SendBufCheck should be in the webrev (btw: it also 
has @bug 8239355). The underlying issue is that PDSI doesn't allow 
sending IPv6 datagrams on macOS of size 65508-65527 (inclusive) bytes 
without changing the default value of SO_SNDBUF. It's not an interesting 
issue of course but I don't think the tests for the JEP should be adding 
a test to make sure that the old implementation has this bug. Can't the 
PDSI issue be fixed with a different issue? Alternatively adding a test 
that checks that IPv6 datagrams of at least size 65507 can be sent on 
configurations that have IPv6 enabled.

A minor nit for the other test updates is that some of them are changing 
existing tests to run, by default, in /othervm mode. I can't tell if 
that is deliberate or not but we usually try to minimize the use of 
/othervm where possible.

-Alan.







More information about the net-dev mailing list