> A number of net tests use a > **[HostsFileNameService](https://github.com/openjdk/jdk/blob/382e38dd246596ec94a1f1ce0e0f9e87f53366c7/src/java.base/share/classes/java/net/InetAddress.java#L955)** > to verify either the functionality of this type of Name Service or as a > complement to other tests (such as Caching, Address Format etc.). > > Intermittent failures of these tests can be caused by tools used during JVM > start-up accessing/initialising classes sooner than may be expected which can > cause unexpected behaviour. Most commonly, this unexpected behaviour takes > the form of the > **[PlatformNameService](https://github.com/openjdk/jdk/blob/382e38dd246596ec94a1f1ce0e0f9e87f53366c7/src/java.base/share/classes/java/net/InetAddress.java#L927)** > being used despite a call to `System.setProperty("jdk.net.hosts.file", ...)` > in the test file. Due to the fact that **InetAddress** initialises it's > Implementation and Name Service fields in a static class initialiser ([see > L1132 of > InetAddress.java](https://github.com/openjdk/jdk/blob/382e38dd246596ec94a1f1ce0e0f9e87f53366c7/src/java.base/share/classes/java/net/InetAddress.java#L1132)) > and that the default mode is to use the **Platform Name Service**, setting a > system property in the main method to specify the use of > **HostsFileNameService** (with the jdk.net.hosts.file property) has no affect if the class has been previously accessed during JVM start-up and **InetAddress** will default to the **PlatformNameService** which is unsuitable for this test. This explains the intermittent failures caused by the use of `System.setProperty("jdk.net.hosts.file", ...)`. > > This fix improves the robustness of this test by specifying the use of the > **HostsFileNameService** in the `@run` tag for this test via the previously > mentioned system property. This gives certainty that the property will be > properly set in time for the actual run of this test after the JVM has > booted. An example of one the fixes... > * @run main/othervm -Djdk.net.hosts.file=TestToNumericFormatHosts > textToNumericFormat
Conor Cleary has updated the pull request incrementally with two additional commits since the last revision: - 8262195: Copyrights & InternalNSTest Host File Delete - 8262195: Added descriptive comments and filename ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/2703/files - new: https://git.openjdk.java.net/jdk/pull/2703/files/84a0cb2c..f7e0464f Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2703&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2703&range=00-01 Stats: 16 lines in 8 files changed: 2 ins; 4 del; 10 mod Patch: https://git.openjdk.java.net/jdk/pull/2703.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/2703/head:pull/2703 PR: https://git.openjdk.java.net/jdk/pull/2703