Bisection shows it started to happen after [JDK-8253660](https://bugs.openjdk.java.net/browse/JDK-8253660). I believe `toString()` there is not very resilient in the face of `null` causes.
Example output: $ make run-test TEST=compiler/aot STDERR: java.lang.NullPointerException: Cannot invoke "java.lang.Throwable.getCause()" because "<local1>" is null at jdk.test.lib.artifacts.ArtifactResolverException.getRootCause(ArtifactResolverException.java:22) at jdk.test.lib.artifacts.ArtifactResolverException.toString(ArtifactResolverException.java:17) ... at compiler.aot.AotCompiler.resolveLinker(AotCompiler.java:270) at compiler.aot.AotCompiler.launchCompiler(AotCompiler.java:112) at compiler.aot.AotCompiler.main(AotCompiler.java:78) ... ...and since it is a part of this block: } catch (ArtifactResolverException e) { System.err.println("artifact resolution error: " + e); // <--- calling to broken toString() here e.printStackTrace(System.err); // let jaotc try to find linker return null; } ...we never actually get to `// let jaotc try to find linker` part, and that is why I suspect it causes Windows x86_64 tier1/compiler failures in GitHub workflows. See below, `Windows tier1/compiler` tests are now passing. (There are some infra failures in other places on Windows, though). ------------- Commit messages: - 8255225: compiler/aot tests fail on Windows with NPE during artifact resolution Changes: https://git.openjdk.java.net/jdk/pull/800/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=800&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8255225 Stats: 13 lines in 1 file changed: 8 ins; 0 del; 5 mod Patch: https://git.openjdk.java.net/jdk/pull/800.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/800/head:pull/800 PR: https://git.openjdk.java.net/jdk/pull/800