RFR 8081678: Add Stream returning methods to classes where there currently exist only Enumeration returning methods

Alan Bateman Alan.Bateman at oracle.com
Wed Jun 3 10:46:40 UTC 2015


On 02/06/2015 14:37, Paul Sandoz wrote:

> :
>
> There is one small area of uncertainty with NetworkInterface. Can the following method ever return null?
>
>   342     public static Enumeration<NetworkInterface> getNetworkInterfaces()
>   343         throws SocketException {
>   344         NetworkInterface[] netifs = getAll();
>   345
>   346         // specified to return null if no network interfaces
>   347         return netifs != null
>   348                ? enumerationFromArray(netifs)
>   349                : null;
>   350     }
>
> Contrary to the comment i cannot find any specification. For the stream returning method, networkInterfaces, i have specified this to return an empty stream, thus it might be good to update the enumeration returning method as well to say whether it returns null or an empty enumeration.
>
cc'ing net-dev. AFAIK, getNetworkInterface was originally specified to 
return null but this was changed in Java SE 8 to always return with at 
least one element, the loopback interface.

The underlying native getAll might still return null for exception cases 
(which will cause the SocketException to be thrown on return). So I 
think you can remove the null check.

-Alan




More information about the net-dev mailing list