RFR[8236105]: Behaviors of DatagramSocket/DatagramChannel::socket send methods are not always consistent

Chris Hegarty chris.hegarty at oracle.com
Fri Jan 17 12:03:12 UTC 2020


Patrick,

> On 13 Jan 2020, at 16:30, Patrick Concannon <patrick.concannon at oracle.com> wrote:
> 
> Hi,
> 
> Could someone please review my fix and CSR for issue JDK-8236105 'Behaviors of DatagramSocket/DatagramChannel::socket send methods are not always consistent' ?
> 
> The behaviour of the send methods for DatagramSocket, MulticastSocket, DatagramChannel and DatagramSocketAdaptor are not consistent when given a DatagramPacket with invalid details. This fix adds a check to ensure that the exceptions thrown by the send method of DatagramSocket and MulticastSocket match the exception thrown by DatagramChannel and DatagramSocketAdaptor i.e. IllegalArgumentException
> 
> 
> bug: https://bugs.openjdk.java.net/browse/JDK-8236105 <https://bugs.openjdk.java.net/browse/JDK-8236105>
> 
> CSR: https://bugs.openjdk.java.net/browse/JDK-8236940 <https://bugs.openjdk.java.net/browse/JDK-8236940>
> webrev: http://cr.openjdk.java.net/~pconcannon/8236105/webrevs/webrev.00/  <http://cr.openjdk.java.net/~pconcannon/8236105/webrevs/webrev.00/>


Mostly looks good.

1) While investigating how one can create a datagram packet with an
   out-of-range port number I find that DatagramPacket::setPort is
   missing an "@throws IAE - if the given port is outside the range of
   valid port values". This could be added to this CSR?

2) DatagramPacket::setSocketAddress - same comment as above

3) Argh! several DatagramPacket constructors are also missing the IAE!

4) If we fix 1-3 above, then DatagramPacket would be a reasonable place
   to specify the range of valid port values ( or is that specified
   elsewhere? )

-Chris.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/net-dev/attachments/20200117/2ff3a17f/attachment.htm>


More information about the net-dev mailing list