RFR: 8275319 java.net.NetworkInterface throws java.lang.Error instead of SocketException

Jaikiran Pai jpai at openjdk.java.net
Fri Oct 15 05:08:59 UTC 2021


On Thu, 14 Oct 2021 17:29:16 GMT, Daniel Jeliński <duke at openjdk.java.net> wrote:

> Per Java documentation, "[Error](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/lang/Error.java#L30) [..] indicates serious problems that a reasonable application should not try to catch". Failure to enumerate network interfaces or addresses is not a serious enough situation; many applications can recover from this pretty easily.
> 
> All native methods (except `init()`) in [NetworkInterface](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/net/NetworkInterface.java#L436) are declared with `throws SocketException`, so throwing SocketExceptions instead of Errors will match the declared interface.
> 
> Unix version of [NetworkInterface](https://github.com/openjdk/jdk/blob/master/src/java.base/unix/native/libnet/NetworkInterface.c#L1189) already throws `SocketException`s in similar situations, and does not throw `Error` under any circumstances.
> 
> I searched the bug database and mail archives, but could not find any discussion on the topic; if there's a reason to keep throwing `Error`s, I couldn't find it.
> 
> `tier1` tests pass, `java.net` tests pass. No new regression tests as I couldn't find any list of steps to reproduce the problem.
> 
> I don't have write access to JBS. I could use some help with creating a ticket.

Hello @djelinski, 

> I don't have write access to JBS. I could use some help with creating a ticket.

I have created https://bugs.openjdk.java.net/browse/JDK-8275319 to track this. For this PR to trigger the PR review process, you will now have to update the PR title to match the bug id and bug title (and I think even the commit message should refer to the same).

-------------

PR: https://git.openjdk.java.net/jdk/pull/5956


More information about the net-dev mailing list