Integrated: 8317802: jmh tests fail with Unable to find the resource: /META-INF/BenchmarkList after JDK-8306819

Jaikiran Pai jpai at openjdk.org
Wed Oct 11 01:00:17 UTC 2023


On Tue, 10 Oct 2023 14:21:40 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

> Can I please get a review of this change which proposes to fix jmh test launch failures noted in https://bugs.openjdk.org/browse/JDK-8317802?
> 
> jmh apparently relies on annotation processors during compilation of a benchmark. When annotation processing is disabled, the generated benchmark jar is unusable when the benchmark is launched and fails with:
> 
> 
> Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList
> 	at org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
> 	at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
> 	at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:252)
> 	at org.openjdk.jmh.runner.Runner.run(Runner.java:208)
> 	at org.openjdk.jmh.Main.main(Main.java:71)
> 
> After the integration of https://bugs.openjdk.org/browse/JDK-8306819 recently in JDK mainline, `javac` no longer runs annotation processors by default. These jmh tests that are compiled as part of the JDK build will now have to enable annotation processing explicitly.
> 
> The commit in this PR enables annotation processing by setting `-proc:full` (implying run annotation processors as well as compile the files) when compiling the benchmarks.
> 
> I tested this change locally. Without this change, the following command fails:
> 
> 
> make test TEST="micro:java.lang.ArraysSort"                                                               
> ...
> Test selection 'micro:java.lang.ArraysSort', will run:
> * micro:java.lang.ArraysSort
> 
> Running test 'micro:java.lang.ArraysSort'
> Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to find the resource: /META-INF/BenchmarkList
> 	at org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
> 	at org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:124)
> 	at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:252)
> 	at org.openjdk.jmh.runner.Runner.run(Runner.java:208)
> 	at org.openjdk.jmh.Main.main(Main.java:71)
> Finished running test 'micro:java.lang.ArraysSort'
> 
> 
> 
> After the change in this PR, the same command works fine and the jmh benchmark is run.

This pull request has now been integrated.

Changeset: 54861df3
Author:    Jaikiran Pai <jpai at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/54861df3d9e29a86dcfcecc4eb5072cc3f006069
Stats:     5 lines in 1 file changed: 3 ins; 0 del; 2 mod

8317802: jmh tests fail with Unable to find the resource: /META-INF/BenchmarkList after JDK-8306819

Reviewed-by: erikj, ihse

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

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


More information about the build-dev mailing list