Can I please get a review of this minor enhancement to the error text that is 
reported if the `getaddrinfo()` native call returns the `EAI_SYSTEM` error? 
This addresses https://bugs.openjdk.org/browse/JDK-8227493.

The `java.net.InetAddress` class, in its implementation for resolving addresses 
for a host name, calls the `getaddrinfo()` native call on *nix platforms. If 
`getaddrinfo()` returns an error then we use the `gai_strerror()` native call 
to convert the error number into an error string that is then propagated to the 
application. Among other errors, the `getaddrinfo()` is specified to return the 
error code `EAI_SYSTEM` which as per its documentation represents

> EAI_SYSTEM        system error returned in errno

So calling `gai_strerror()` merely returns a generic "System error" text. The 
real underlying error is present in the `errno` and that has more useful 
information. 

The commit in this PR checks the error for `EAI_SYSTEM` and if it matches then 
it additionally gets the error text corresponding to `errno`. So the error text 
that gets propagated will now be "System error: Illegal byte sequence", 
assuming `EILSEQ` was the underlying `errno` for the `getaddrinfo` call (my use 
of `EILSEQ` in this example is arbitrary and it's merely to show what the error 
text will look like after this change).

Given the nature of this change no new test has been introduced. Existing tests 
in tier1, tier2 and tier3 continue to pass with this change.

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

Commit messages:
 - 8227493: lookupAllHostAddr does not handle EAI_SYSTEM correctly

Changes: https://git.openjdk.org/jdk/pull/22484/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22484&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8227493
  Stats: 34 lines in 4 files changed: 19 ins; 0 del; 15 mod
  Patch: https://git.openjdk.org/jdk/pull/22484.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22484/head:pull/22484

PR: https://git.openjdk.org/jdk/pull/22484

Reply via email to