On Fri, 15 Oct 2021 11:22:23 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:

> we need to examine each of these on a case-by-case basis

Makes sense. 
1. `MultiByteToWideChar` case: we can change this to `InternalError`, as it's 
not supposed to happen and apparently not happening
2. 
[GetIfTable](https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getiftable)
 case: 
- as JDK-8165665 states, our handling of `ERROR_INSUFFICIENT_BUFFER` leaves 
something to be desired. We could keep allocating larger buffers a few more 
times, similar to what we have 
[here](https://github.com/openjdk/jdk/blob/2322f15d4c5bf1efbdc65eb4ec30662b30bf2d5e/src/java.base/windows/native/libnet/NetworkInterface_winXP.c#L92).
- `ERROR_INVALID_PARAMETER` qualifies as `InternalError` to me,
- `ERROR_NOT_SUPPORTED` is either a `SocketException` or an empty list.
- I'm a bit concerned about the "Other" catch-all qualifier on MSDN page, but 
I'd use `SocketException` for these, possibly with error code / name embedded 
in exception message. Since they are not explicitly enumerated by Microsoft, I 
don't see how they could qualify as Java bugs.
3. 
[GetIpAddrTable](https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getipaddrtable)
 case: documentation specifies exactly the same list of errors as above, so we 
could handle them in the same way
4. 
[GetAdaptersAddresses](https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses)
 case (winxp only - is the file really used only on WinXP?):
- `ERROR_ADDRESS_NOT_ASSOCIATED`: either return no data or throw 
`SocketException` to make it different from `ERROR_NO_DATA`
- `ERROR_BUFFER_OVERFLOW`: our handling looks fine here
- `ERROR_INVALID_PARAMETER`: `InternalError`
- `ERROR_NOT_ENOUGH_MEMORY`: OOME?
- `ERROR_NO_DATA`: return no data
- other: JDK-8217298 reports `ERROR_ACCESS_DENIED` (5), JDK-8231811 reports 
`ERROR_NOT_FOUND` (1168); I'd use `SocketException` for error codes in this 
category.

What do you think?

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

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

Reply via email to