GetJDKProperties class (originally taken from jtreg sources) fails with
Exception in thread "main" java.lang.AssertionError
at java.base/java.lang.invoke.BoundMethodHandle.<init>(BoundMethodHandle.java:53)
at java.base/java.lang.invoke.BoundMethodHandle$Species_L.<init>(BoundMethodHandle.java:210)
at java.base/java.lang.invoke.BoundMethodHandle$Species_L.make(BoundMethodHandle.java:225)
at java.base/java.lang.invoke.BoundMethodHandle.makeReinvoker(BoundMethodHandle.java:114)
at java.base/java.lang.invoke.DirectMethodHandle.rebind(DirectMethodHandle.java:147)
at java.base/java.lang.invoke.MethodHandles.dropArgumentsTrusted(MethodHandles.java:5345)
at java.base/java.lang.invoke.MethodHandles.dropArguments(MethodHandles.java:5414)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.makeSpecializedTarget(MethodHandleAccessorFactory.java:283)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.getDirectMethod(MethodHandleAccessorFactory.java:221)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newMethodAccessor(MethodHandleAccessorFactory.java:80)
at java.base/jdk.internal.reflect.ReflectionFactory.newMethodAccessor(ReflectionFactory.java:154)
at java.base/java.lang.reflect.Method.acquireMethodAccessor(Method.java:719)
at java.base/java.lang.reflect.Method.invoke(Method.java:570)
at GetJDKProperties.getAllSystemModules(GetJDKProperties.java:158)
at GetJDKProperties.run(GetJDKProperties.java:65)
at GetJDKProperties.main(GetJDKProperties.java:27)
when running with AOTCache built with -XX:+AOTClassLinking and "-esa" flag.
Steps to reproduce:
> javac GetJDKProperties.java
> create AOT cache for jdk classes:
TESTED_JAVA/bin/java -XX:AOTMode=create -XX:AOTConfiguration=TESTED_JAVA/lib/classlist -XX:+AOTClassLinking -XX:AOTCache=app.aot
> TESTED_JAVA/bin/java -esa -XX:AOTCache=app.aot GetJDKProperties --modules=all-system
No failures in case -esa is not used or AOT cache is built without AOTClassLinking
Exception in thread "main" java.lang.AssertionError
at java.base/java.lang.invoke.BoundMethodHandle.<init>(BoundMethodHandle.java:53)
at java.base/java.lang.invoke.BoundMethodHandle$Species_L.<init>(BoundMethodHandle.java:210)
at java.base/java.lang.invoke.BoundMethodHandle$Species_L.make(BoundMethodHandle.java:225)
at java.base/java.lang.invoke.BoundMethodHandle.makeReinvoker(BoundMethodHandle.java:114)
at java.base/java.lang.invoke.DirectMethodHandle.rebind(DirectMethodHandle.java:147)
at java.base/java.lang.invoke.MethodHandles.dropArgumentsTrusted(MethodHandles.java:5345)
at java.base/java.lang.invoke.MethodHandles.dropArguments(MethodHandles.java:5414)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.makeSpecializedTarget(MethodHandleAccessorFactory.java:283)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.getDirectMethod(MethodHandleAccessorFactory.java:221)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newMethodAccessor(MethodHandleAccessorFactory.java:80)
at java.base/jdk.internal.reflect.ReflectionFactory.newMethodAccessor(ReflectionFactory.java:154)
at java.base/java.lang.reflect.Method.acquireMethodAccessor(Method.java:719)
at java.base/java.lang.reflect.Method.invoke(Method.java:570)
at GetJDKProperties.getAllSystemModules(GetJDKProperties.java:158)
at GetJDKProperties.run(GetJDKProperties.java:65)
at GetJDKProperties.main(GetJDKProperties.java:27)
when running with AOTCache built with -XX:+AOTClassLinking and "-esa" flag.
Steps to reproduce:
> javac GetJDKProperties.java
> create AOT cache for jdk classes:
TESTED_JAVA/bin/java -XX:AOTMode=create -XX:AOTConfiguration=TESTED_JAVA/lib/classlist -XX:+AOTClassLinking -XX:AOTCache=app.aot
> TESTED_JAVA/bin/java -esa -XX:AOTCache=app.aot GetJDKProperties --modules=all-system
No failures in case -esa is not used or AOT cache is built without AOTClassLinking