On Thu, 14 Oct 2021 17:29:16 GMT, Daniel Jeliński <d...@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.

I have to agree with Alan on this. Is there any concrete case where an Error 
was observed, or is this pure speculation?
If there are concrete cases then the proper fix would probably be to examine 
the error code or condition that triggered the Error - and investigate if the 
native source code  can be updated to take remediation actions in those cases.

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

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

Reply via email to