Integrated: 8357914: TestEmptyBootstrapMethodsAttr.java fails when run with TEST_THREAD_FACTORY=Virtual
Patricio Chilano Mateo
pchilanomate at openjdk.org
Thu Jun 5 15:04:56 UTC 2025
On Wed, 28 May 2025 19:31:17 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:
> Please review this small test fix. The test launches a child process with the only purpose of validating that the load of the main class (`emptynumbootstrapmethods1`/`emptynumbootstrapmethods2`) completes successfully and doesn’t throw `ClassFormatError`. The class doesn’t define a main method, so later during execution of `LauncherHelper.validateMainMethod` the child VM exits with the following error message which we check from the `OutputAnalyzer` output:
>
>
> Error: Main method not found in class emptynumbootstrapmethods1, please define the main method as:
> public static void main(String[] args)
> or a JavaFX application class must extend javafx.application.Application
>
>
> The issue when the test is run with `TEST_THREAD_FACTORY=Virtual` is that loading of `emptynumbootstrapmethods1` is done in `jdk.test.lib.process.ProcessTools.main` (the actual entry point), which instead of calling `MethodFinder.findMainMethod(mainClass)` and aborting if result is null like `LauncherHelper` uses
> `Method mainMethod = c.getMethod("main", new Class<?>[] { String[].class });` which throws an exception instead and the test exits with the following error message:
>
>
> [Exception in thread "main" java.lang.NoSuchMethodException: emptynumbootstrapmethods1.main([Ljava.lang.String;)
> at java.base/java.lang.Class.getMethod(Class.java:2166)
> at jdk.test.lib.process.ProcessTools.main(ProcessTools.java:984)
>
>
> The proposed fix adjusts the output we check for based on whether the test was run on a platform thread or a virtual thread.
>
> Thanks,
> Patricio
This pull request has now been integrated.
Changeset: c59e44a7
Author: Patricio Chilano Mateo <pchilanomate at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/c59e44a7aa2aeff0823830b698d524523b996650
Stats: 16 lines in 2 files changed: 12 ins; 3 del; 1 mod
8357914: TestEmptyBootstrapMethodsAttr.java fails when run with TEST_THREAD_FACTORY=Virtual
Reviewed-by: lmesnik, dholmes, sspitsyn, syan
-------------
PR: https://git.openjdk.org/jdk/pull/25509
More information about the hotspot-runtime-dev
mailing list