native-image run on ubuntu-latest / JDK 25 / mode current-defaults
Failure kind: native-image run
OS: ubuntu-latest
JDK: 25
Native-image mode: current-defaults
Reproducer: GVM_TCK_NATIVE_IMAGE_MODE="current-defaults" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"
Runner log: https://github.com/oracle/graalvm-reachability-metadata/actions/runs/24556825477/job/71795458348
Last 300 lines of the log (excerpt truncated to fit the GitHub issue size limit):
/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.27.0/91b2c29d8a6148b5e2e4930f070d4840e2e48e34/error_prone_annotations-2.27.0.jar:/home/runner/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/28c11eb91f9b6d8e200631d46e20a7f407f2a046/opentest4j-1.2.0.jar:/home/runner/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar:/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/classes/java/test:/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/resources/test:/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/test-results/test/testlist \
-imagemp \
/opt/hostedtoolcache/graalvm-jdk-25_linux-x64_bin/25.0.0/x64/graalvm-jdk-25.0.2+10.1/lib/svm/library-support.jar \
-H:CLibraryPath=/opt/hostedtoolcache/graalvm-jdk-25_linux-x64_bin/25.0.0/x64/graalvm-jdk-25.0.2+10.1/lib/svm/clibraries/linux-amd64/glibc,/opt/hostedtoolcache/graalvm-jdk-25_linux-x64_bin/25.0.0/x64/graalvm-jdk-25.0.2+10.1/lib/svm/clibraries/linux-amd64,/opt/hostedtoolcache/graalvm-jdk-25_linux-x64_bin/25.0.0/x64/graalvm-jdk-25.0.2+10.1/lib/svm/clibraries \
-H:Path@driver=/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile \
-H:BuildOutputJSONFile@user=/tmp/native-image-build-output.json \
-H:FallbackThreshold@user+api=0 \
-H:Name@user+api=io.jsonwebtoken.jjwt-gson_tests-tests \
-H:ConfigurationFileDirectories@user=/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/generated/generateTestResourcesConfigFile,/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/metadata/io.jsonwebtoken/jjwt-gson/0.12.0 \
-H:Optimize@user+api=b \
-H:+ReportExceptionStackTraces@user \
-H:AddExports@user+api=java.base/sun.security.util=ALL-UNNAMED \
-H:AddOpens@user+api=java.base/java.io=ALL-UNNAMED \
-H:Features@user+api=org.graalvm.junit.platform.JUnitPlatformFeature \
'-H:Class@explicit main-class=org.graalvm.junit.platform.NativeImageJUnitLauncher' \
-H:ImageBuildID@driver=d2e760dc-cb2e-5dcb-4eef-62c4bc591e94 \
'-H:Features@jar:file:///opt/hostedtoolcache/graalvm-jdk-25_linux-x64_bin/25.0.0/x64/graalvm-jdk-25.0.2+10.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties+api=com.oracle.svm.thirdparty.gson.GsonFeature' \
'-H:Features@jar:file:///opt/hostedtoolcache/graalvm-jdk-25_linux-x64_bin/25.0.0/x64/graalvm-jdk-25.0.2+10.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties+api=com.oracle.svm.polyglot.groovy.GroovyIndyInterfaceFeature,com.oracle.svm.polyglot.scala.ScalaFeature'
]
========================================================================================================================
GraalVM Native Image: Generating 'io.jsonwebtoken.jjwt-gson_tests-tests' (executable)...
========================================================================================================================
For detailed information and explanations on the build output, visit:
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
------------------------------------------------------------------------------------------------------------------------
[1/8] Initializing... (6.3s @ 0.16GB)
Java version: 25.0.2+10-LTS, vendor version: Oracle GraalVM 25.0.2+10.1
Graal compiler: optimization level: b, target machine: x86-64-v3, PGO: off
C compiler: gcc (linux, x86_64, 13.3.0)
Garbage collector: Serial GC (max heap size: 80% of RAM)
2 user-specific feature(s):
- com.oracle.svm.thirdparty.gson.GsonFeature
- org.graalvm.junit.platform.JUnitPlatformFeature
------------------------------------------------------------------------------------------------------------------------
1 experimental option(s) unlocked:
- '-H:BuildOutputJSONFile' (origin(s): command line)
------------------------------------------------------------------------------------------------------------------------
Build resources:
- 12.67GB of memory (75.6% of system memory, $CI set to 'true')
- 4 thread(s) (100.0% of 4 available processor(s), determined at start)
[junit-platform-native] Running in 'test listener' mode using files matching pattern [junit-platform-unique-ids*] found in folder [/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/test-results/test/testlist] and its subfolders.
[2/8] Performing analysis... [*****] (35.5s @ 0.92GB)
8,668 types, 9,772 fields, and 37,646 methods found reachable
2,964 types, 228 fields, and 1,894 methods registered for reflection
59 types, 60 fields, and 52 methods registered for JNI access
0 downcalls and 0 upcalls registered for foreign access
4 native libraries: dl, pthread, rt, z
[3/8] Building universe... (4.2s @ 1.02GB)
[4/8] Parsing methods... [**] (4.4s @ 0.75GB)
[5/8] Inlining methods... [***] (2.2s @ 0.80GB)
[6/8] Compiling methods... [****] (18.9s @ 0.95GB)
[7/8] Laying out methods... [**] (3.5s @ 0.92GB)
[8/8] Creating image... [**] (3.6s @ 1.03GB)
10.24MB (35.67%) for code area: 23,576 compilation units
14.68MB (51.12%) for image heap: 232,297 objects and 154 resources
3.79MB (13.21%) for other data
28.72MB in total image size, 26.61MB in total file size
------------------------------------------------------------------------------------------------------------------------
Top 10 origins of code area: Top 10 object types in image heap:
5.24MB java.base 2.99MB byte[] for code metadata
2.21MB svm.jar (Native Image) 2.68MB byte[] for java.lang.String
538.78kB assertj-core-3.22.0.jar 1.42MB java.lang.String
481.15kB java.xml 1.08MB java.lang.Class
197.65kB junit-jupiter-engine-5.9.2.jar 1.06MB byte[] for general heap data
120.78kB junit-platform-launcher-1.9.2.jar 901.47kB com.oracle.svm.core.hub.DynamicHubCompanion
107.72kB gson-2.11.0.jar 576.02kB heap alignment
103.22kB java.logging 452.93kB java.util.concurrent.ConcurrentHashMap$Node
99.37kB junit-platform-engine-1.9.2.jar 302.08kB java.util.HashMap$Node
94.91kB jjwt-impl-0.12.7.jar 284.72kB java.lang.Object[]
681.02kB for 26 more packages 2.92MB for 2152 more object types
Use '--emit build-report' to create a report with more details.
------------------------------------------------------------------------------------------------------------------------
Security report:
- Binary includes Java deserialization.
- CycloneDX SBOM with 20 component(s) is embedded in binary (1.03kB). 3 type(s) could not be associated to a component.
- Advanced obfuscation not enabled; enable with '-H:AdvancedObfuscation=""' (experimental support).
------------------------------------------------------------------------------------------------------------------------
Recommendations:
G1GC: Use the G1 GC ('--gc=G1') for improved latency and throughput.
PGO: Use Profile-Guided Optimizations ('--pgo') for improved throughput.
FUTR: Use '--future-defaults=all' to prepare for future releases.
HEAP: Set max heap for improved and more predictable memory usage.
CPU: Enable more CPU features with '-march=native' for improved performance.
------------------------------------------------------------------------------------------------------------------------
5.2s (6.4% of total time) in 750 GCs | Peak RSS: 1.76GB | CPU load: 3.60
------------------------------------------------------------------------------------------------------------------------
Build artifacts:
/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile/io.jsonwebtoken.jjwt-gson_tests-tests (executable)
/tmp/native-image-build-output.json (build_info)
========================================================================================================================
Finished generating 'io.jsonwebtoken.jjwt-gson_tests-tests' in 1m 20s.
[native-image-plugin] Native Image written to: /home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile
> Task :nativeTest FAILED
[junit-platform-native] Running in 'test listener' mode using files matching pattern [junit-platform-unique-ids*] found in folder [/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/test-results/test/testlist] and its subfolders.
JUnit Platform on Native Image - report
----------------------------------------
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testCreatingAJWS() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testSignedJWTs() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testSignatureAlgorithms() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testCompression() FAILED
Failures (4):
JUnit Jupiter:Jjwt_gsonTest:testCreatingAJWS()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testCreatingAJWS', methodParameterTypes = '']
=> java.lang.ExceptionInInitializerError
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testCreatingAJWS(Jjwt_gsonTest.java:55)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
[...]
Caused by: io.jsonwebtoken.lang.InstantiationException: Unable to instantiate class [io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier]
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:221)
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:173)
io.jsonwebtoken.Jwts.<clinit>(Jwts.java:1006)
[...]
Caused by: java.lang.InstantiationException: io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier
java.base@25.0.2/java.lang.Class.newInstance(DynamicHub.java:709)
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:219)
[...]
Caused by: java.lang.NoSuchMethodException: io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier.<init>()
java.base@25.0.2/java.lang.Class.checkConstructor(DynamicHub.java:1356)
java.base@25.0.2/java.lang.Class.getConstructor0(DynamicHub.java:1565)
java.base@25.0.2/java.lang.Class.newInstance(DynamicHub.java:702)
[...]
JUnit Jupiter:Jjwt_gsonTest:testSignedJWTs()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testSignedJWTs', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testSignedJWTs(Jjwt_gsonTest.java:45)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
[...]
JUnit Jupiter:Jjwt_gsonTest:testSignatureAlgorithms()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testSignatureAlgorithms', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.assertSignedSubject(Jjwt_gsonTest.java:126)
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testSignatureAlgorithms(Jjwt_gsonTest.java:91)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':nativeTest'.
> Process 'command '/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile/io.jsonwebtoken.jjwt-gson_tests-tests'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to generate a Build Scan (Powered by Develocity).
> Get more help at https://help.gradle.org.
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
[...]
JUnit Jupiter:Jjwt_gsonTest:testCompression()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testCompression', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testCompression(Jjwt_gsonTest.java:83)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
[...]
Test run finished after 4 ms
[ 3 containers found ]
[ 0 containers skipped ]
[ 3 containers started ]
[ 0 containers aborted ]
[ 3 containers successful ]
[ 0 containers failed ]
[ 4 tests found ]
[ 0 tests skipped ]
[ 4 tests started ]
[ 0 tests aborted ]
[ 0 tests successful ]
[ 4 tests failed ]
[Incubating] Problems report is available at: file:///home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 1m 29s
14 actionable tasks: 6 executed, 8 up-to-date
> Task :tckTest FAILED
[Incubating] Problems report is available at: file:///home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/build/reports/problems/problems-report.html
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':tckTest'.
> Test for io.jsonwebtoken:jjwt-gson:0.12.0 failed with exit code 1.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to generate a Build Scan (Powered by Develocity).
> Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 1m 31s
11 actionable tasks: 3 executed, 8 up-to-date
❌ ERROR: 'native-image run' for 0.12.7 failed with exit code 1.
FAILED[native-image run][0.12.7][GVM_TCK_NATIVE_IMAGE_MODE="current-defaults" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"]
native-image run on ubuntu-latest / JDK latest-ea / mode current-defaults
Failure kind: native-image run
OS: ubuntu-latest
JDK: latest-ea
Native-image mode: current-defaults
Reproducer: GVM_TCK_NATIVE_IMAGE_MODE="current-defaults" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"
Runner log: https://github.com/oracle/graalvm-reachability-metadata/actions/runs/24556825477/job/71795458445
Last 300 lines of the log (excerpt truncated to fit the GitHub issue size limit):
ryPath=/opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/clibraries/linux-amd64/glibc,/opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/clibraries/linux-amd64,/opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/clibraries \
-H:Path@driver=/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile \
-H:BuildOutputJSONFile@user=/tmp/native-image-build-output.json \
-H:FallbackThreshold@user+api=0 \
-H:Name@user+api=io.jsonwebtoken.jjwt-gson_tests-tests \
-H:ConfigurationFileDirectories@user=/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/generated/generateTestResourcesConfigFile,/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/metadata/io.jsonwebtoken/jjwt-gson/0.12.0 \
-H:Optimize@user+api=b \
-H:+ReportExceptionStackTraces@user \
-H:AddExports@user+api=java.base/sun.security.util=ALL-UNNAMED \
-H:AddOpens@user+api=java.base/java.io=ALL-UNNAMED \
-H:Features@user+api=org.graalvm.junit.platform.JUnitPlatformFeature \
'-H:Class@explicit main-class=org.graalvm.junit.platform.NativeImageJUnitLauncher' \
-H:ImageBuildID@driver=d2e760dc-cb2e-5dcb-4eef-62c4bc591e94 \
'-H:Features@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties+api=com.oracle.svm.thirdparty.gson.GsonFeature' \
'-H:Features@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties+api=com.oracle.svm.polyglot.groovy.GroovyIndyInterfaceFeature' \
'-H:AddExports@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/svm-guest.jar!/META-INF/native-image/org.graalvm.nativeimage.guest/native-image.properties+api=java.base/jdk.internal.misc=org.graalvm.nativeimage.guest' \
'-H:Features@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/svm-guest.jar!/META-INF/native-image/org.graalvm.nativeimage.guest/native-image.properties+api=com.oracle.svm.guest.features.jdk.hosted.JavaNetHttpFeature' \
'-H:ClassInitialization@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/svm-guest.jar!/META-INF/native-image/org.graalvm.nativeimage.guest/native-image.properties+api=sun.net.httpserver.simpleserver:run_time' \
'-H:ReachabilityMetadataResources@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/svm-guest.jar!/META-INF/native-image/org.graalvm.nativeimage.guest/reachability-metadata.json+api=META-INF/native-image/org.graalvm.nativeimage.guest/reachability-metadata.json' \
-H:DriverWarningsCount=4
]
Warning: Option 'FallbackThreshold' is deprecated and might be removed in a future release: It no longer has any effect, and no replacement is available. Please refer to the GraalVM release notes.
========================================================================================================================
GraalVM Native Image: Generating 'io.jsonwebtoken.jjwt-gson_tests-tests' (executable)...
========================================================================================================================
For detailed information and explanations on the build output, visit:
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
------------------------------------------------------------------------------------------------------------------------
[1/8] Initializing... (6.9s @ 0.18GiB)
Builder configuration:
- Java version: 25.0.2+10-LTS, vendor version: Oracle GraalVM 25.1.0-dev+10.1
- Graal compiler: optimization level: b, target machine: x86-64-v3, PGO: off
- C compiler: gcc (linux, x86_64, 13.3.0)
- Assertions: disabled, system assertions: disabled
- 1 user-specific feature(s):
- org.graalvm.junit.platform.JUnitPlatformFeature
Image configuration:
- Garbage collector: Serial GC (max heap size: 80% of RAM)
- Assertions: disabled (class-specific config may apply), system assertions: disabled
------------------------------------------------------------------------------------------------------------------------
1 experimental option(s) unlocked:
- '-H:BuildOutputJSONFile' (origin(s): command line)
------------------------------------------------------------------------------------------------------------------------
Build resources:
- 13.27GiB of memory (85% of system memory because $CI set to 'true')
- 4 thread(s) (100.0% of 4 available processor(s), determined at start)
[junit-platform-native] Running in 'test listener' mode using files matching pattern [junit-platform-unique-ids*] found in folder [/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/test-results/test/testlist] and its subfolders.
[2/8] Performing analysis... [*****] (37.1s @ 0.90GiB)
8,840 types, 9,824 fields, and 38,122 methods found reachable
488 types, 83 fields, and 987 methods registered for reflection
59 types, 60 fields, and 52 methods registered for JNI access
154 resource accesses registered with 262.37KiB total size
4 native libraries: dl, pthread, rt, z
[3/8] Building universe... (4.6s @ 1.02GiB)
[4/8] Parsing methods... [**] (4.3s @ 0.71GiB)
[5/8] Inlining methods... [***] (2.0s @ 0.73GiB)
[6/8] Compiling methods... [****] (20.2s @ 0.79GiB)
[7/8] Laying out methods... [**] (3.0s @ 0.95GiB)
[8/8] Creating image... [**] (3.6s @ 1.06GiB)
8.93MiB (33.02%) for code area: 23,880 compilation units
14.38MiB (53.16%) for image heap: 244,440 objects and 24 resources
3.74MiB (13.82%) for other data
27.04MiB in total image size, 25.00MiB in total file size
------------------------------------------------------------------------------------------------------------------------
Top 10 origins of code area: Top 10 object types in image heap:
1.02MiB o.g.n.runtime/com.oracle.svm.core.code 2.75MiB byte[] for code metadata
708.99KiB java.base/java.util 2.66MiB byte[] for string data
407.43KiB java.base/jdk.internal.classfile.impl 1.43MiB java.base/java.lang.String
301.79KiB java.base/java.lang 1.05MiB java.base/java.lang.Class
282.50KiB java.base/com.sun.crypto.provider 966.88KiB o.g.n.runtime/c.o.s.core.hub.DynamicHubCompanion
275.78KiB java.base/java.text 903.59KiB byte[] for general heap data
223.93KiB org.assertj.core.internal.bytebuddy.jar.asm 454.53KiB java.base/java.util.HashMap$Node
221.75KiB java.base/java.util.concurrent 392.92KiB byte[] for reflection metadata
188.28KiB java.base/sun.security.provider 344.71KiB heap alignment
162.38KiB java.base/sun.security.util.math.intpoly 342.70KiB o.g.n.runtime/c.o.s.c.h.ImageReflectionMetadata
5.20MiB for 323 more packages 3.16MiB for 2172 more object types
Use '--emit build-report' to create a report with more details.
------------------------------------------------------------------------------------------------------------------------
Security report:
- Binary includes Java deserialization.
- CycloneDX SBOM with 20 component(s) is embedded in binary (1.08KiB). 3 type(s) could not be associated to a component.
- Advanced obfuscation not enabled; enable with '-H:AdvancedObfuscation=""' (experimental support).
------------------------------------------------------------------------------------------------------------------------
Recommendations:
G1GC: Use the G1 GC ('--gc=G1') for improved latency and throughput.
PGO: Use Profile-Guided Optimizations ('--pgo') for improved throughput.
FUTR: Use '--future-defaults=all' to prepare for future releases.
HEAP: Set max heap for improved and more predictable memory usage.
CPU: Enable more CPU features with '-march=native' for improved performance.
------------------------------------------------------------------------------------------------------------------------
5.8s (6.8% of total time) in 763 GCs | Peak RSS: 1.67GiB | CPU load: 3.60
------------------------------------------------------------------------------------------------------------------------
Build artifacts:
/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile/io.jsonwebtoken.jjwt-gson_tests-tests (executable, 25.00MiB)
/tmp/native-image-build-output.json (build_info, 1.03KiB)
========================================================================================================================
Finished generating 'io.jsonwebtoken.jjwt-gson_tests-tests' in 1m 24s.
The build process encountered 5 warnings.
[native-image-plugin] Native Image written to: /home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':nativeTest'.
> Process 'command '/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile/io.jsonwebtoken.jjwt-gson_tests-tests'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to generate a Build Scan (Powered by Develocity).
> Get more help at https://help.gradle.org.
BUILD FAILED in 1m 30s
> Task :nativeTest FAILED
[junit-platform-native] Running in 'test listener' mode using files matching pattern [junit-platform-unique-ids*] found in folder [/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/test-results/test/testlist] and its subfolders.
JUnit Platform on Native Image - report
----------------------------------------
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testCreatingAJWS() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testSignedJWTs() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testSignatureAlgorithms() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testCompression() FAILED
Failures (4):
JUnit Jupiter:Jjwt_gsonTest:testCreatingAJWS()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testCreatingAJWS', methodParameterTypes = '']
=> java.lang.ExceptionInInitializerError
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testCreatingAJWS(Jjwt_gsonTest.java:55)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
[...]
Caused by: io.jsonwebtoken.lang.InstantiationException: Unable to instantiate class [io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier]
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:221)
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:173)
io.jsonwebtoken.Jwts.<clinit>(Jwts.java:1006)
[...]
Caused by: java.lang.InstantiationException: io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier
java.base@25.0.2/java.lang.Class.newInstance(DynamicHub.java:709)
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:219)
[...]
Caused by: java.lang.NoSuchMethodException: io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier.<init>()
java.base@25.0.2/java.lang.Class.checkConstructor(DynamicHub.java:1634)
java.base@25.0.2/java.lang.Class.getConstructor0(DynamicHub.java:1842)
java.base@25.0.2/java.lang.Class.newInstance(DynamicHub.java:702)
[...]
JUnit Jupiter:Jjwt_gsonTest:testSignedJWTs()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testSignedJWTs', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testSignedJWTs(Jjwt_gsonTest.java:45)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
[...]
JUnit Jupiter:Jjwt_gsonTest:testSignatureAlgorithms()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testSignatureAlgorithms', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.assertSignedSubject(Jjwt_gsonTest.java:126)
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testSignatureAlgorithms(Jjwt_gsonTest.java:91)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
[...]
JUnit Jupiter:Jjwt_gsonTest:testCompression()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testCompression', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testCompression(Jjwt_gsonTest.java:83)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
[...]
Test run finished after 3 ms
[ 3 containers found ]
[ 0 containers skipped ]
[ 3 containers started ]
[ 0 containers aborted ]
[ 3 containers successful ]
[ 0 containers failed ]
[ 4 tests found ]
[ 0 tests skipped ]
[ 4 tests started ]
[ 0 tests aborted ]
[ 0 tests successful ]
[ 4 tests failed ]
[Incubating] Problems report is available at: file:///home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
14 actionable tasks: 6 executed, 8 up-to-date
> Task :tckTest FAILED
[Incubating] Problems report is available at: file:///home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/build/reports/problems/problems-report.html
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':tckTest'.
> Test for io.jsonwebtoken:jjwt-gson:0.12.0 failed with exit code 1.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to generate a Build Scan (Powered by Develocity).
> Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 1m 32s
11 actionable tasks: 3 executed, 8 up-to-date
❌ ERROR: 'native-image run' for 0.12.7 failed with exit code 1.
FAILED[native-image run][0.12.7][GVM_TCK_NATIVE_IMAGE_MODE="current-defaults" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"]
native-image run on ubuntu-latest / JDK latest-ea / mode future-defaults-all
Failure kind: native-image run
OS: ubuntu-latest
JDK: latest-ea
Native-image mode: future-defaults-all
Reproducer: GVM_TCK_NATIVE_IMAGE_MODE="future-defaults-all" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"
Runner log: https://github.com/oracle/graalvm-reachability-metadata/actions/runs/24556825477/job/71795458392
Last 300 lines of the log (excerpt truncated to fit the GitHub issue size limit):
Path=/opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/clibraries/linux-amd64/glibc,/opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/clibraries/linux-amd64,/opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/clibraries \
-H:Path@driver=/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile \
-H:BuildOutputJSONFile@user=/tmp/native-image-build-output.json \
-H:FallbackThreshold@user+api=0 \
-H:Name@user+api=io.jsonwebtoken.jjwt-gson_tests-tests \
-H:ConfigurationFileDirectories@user=/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/generated/generateTestResourcesConfigFile,/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/metadata/io.jsonwebtoken/jjwt-gson/0.12.0 \
-H:Optimize@user+api=b \
-H:+ReportExceptionStackTraces@user \
-H:FutureDefaults@user+api=all \
-H:AddExports@user+api=java.base/sun.security.util=ALL-UNNAMED \
-H:AddOpens@user+api=java.base/java.io=ALL-UNNAMED \
-H:Features@user+api=org.graalvm.junit.platform.JUnitPlatformFeature \
'-H:Class@explicit main-class=org.graalvm.junit.platform.NativeImageJUnitLauncher' \
-H:ImageBuildID@driver=a96fce54-41f1-4159-e21f-33b04cf4c400 \
'-H:Features@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/thirdparty/native-image.properties+api=com.oracle.svm.thirdparty.gson.GsonFeature' \
'-H:Features@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/library-support.jar!/META-INF/native-image/com.oracle.svm/polyglot/native-image.properties+api=com.oracle.svm.polyglot.groovy.GroovyIndyInterfaceFeature' \
'-H:AddExports@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/svm-guest.jar!/META-INF/native-image/org.graalvm.nativeimage.guest/native-image.properties+api=java.base/jdk.internal.misc=org.graalvm.nativeimage.guest' \
'-H:Features@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/svm-guest.jar!/META-INF/native-image/org.graalvm.nativeimage.guest/native-image.properties+api=com.oracle.svm.guest.features.jdk.hosted.JavaNetHttpFeature' \
'-H:ClassInitialization@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/svm-guest.jar!/META-INF/native-image/org.graalvm.nativeimage.guest/native-image.properties+api=sun.net.httpserver.simpleserver:run_time' \
'-H:ReachabilityMetadataResources@jar:file:///opt/hostedtoolcache/graalvm-jdk-latest-ea_linux-x64_bin/25.0.0/x64/graalvm-25.1.0-dev+10.1/lib/svm/svm-guest.jar!/META-INF/native-image/org.graalvm.nativeimage.guest/reachability-metadata.json+api=META-INF/native-image/org.graalvm.nativeimage.guest/reachability-metadata.json' \
-H:DriverWarningsCount=4
]
Warning: Option 'FallbackThreshold' is deprecated and might be removed in a future release: It no longer has any effect, and no replacement is available. Please refer to the GraalVM release notes.
========================================================================================================================
GraalVM Native Image: Generating 'io.jsonwebtoken.jjwt-gson_tests-tests' (executable)...
========================================================================================================================
For detailed information and explanations on the build output, visit:
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
------------------------------------------------------------------------------------------------------------------------
[1/8] Initializing... (6.3s @ 0.18GiB)
Builder configuration:
- Java version: 25.0.2+10-LTS, vendor version: Oracle GraalVM 25.1.0-dev+10.1
- Graal compiler: optimization level: b, target machine: x86-64-v3, PGO: off
- C compiler: gcc (linux, x86_64, 13.3.0)
- Assertions: disabled, system assertions: disabled
- 1 user-specific feature(s):
- org.graalvm.junit.platform.JUnitPlatformFeature
Image configuration:
- Garbage collector: Serial GC (max heap size: 80% of RAM)
- Assertions: disabled (class-specific config may apply), system assertions: disabled
------------------------------------------------------------------------------------------------------------------------
1 experimental option(s) unlocked:
- '-H:BuildOutputJSONFile' (origin(s): command line)
------------------------------------------------------------------------------------------------------------------------
Build resources:
- 13.27GiB of memory (85% of system memory because $CI set to 'true')
- 4 thread(s) (100.0% of 4 available processor(s), determined at start)
[junit-platform-native] Running in 'test listener' mode using files matching pattern [junit-platform-unique-ids*] found in folder [/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/test-results/test/testlist] and its subfolders.
[2/8] Performing analysis... [*****] (33.5s @ 0.93GiB)
9,064 types, 10,294 fields, and 39,659 methods found reachable
506 types, 83 fields, and 1,003 methods registered for reflection
59 types, 60 fields, and 52 methods registered for JNI access
155 resource accesses registered with 262.48KiB total size
4 native libraries: dl, pthread, rt, z
[3/8] Building universe... (4.2s @ 1.02GiB)
[4/8] Parsing methods... [**] (4.2s @ 0.75GiB)
[5/8] Inlining methods... [***] (1.7s @ 0.80GiB)
[6/8] Compiling methods... [****] (18.8s @ 0.81GiB)
[7/8] Laying out methods... [**] (3.1s @ 0.99GiB)
[8/8] Creating image... [**] (3.6s @ 1.12GiB)
9.48MiB (33.24%) for code area: 25,016 compilation units
15.06MiB (52.85%) for image heap: 259,294 objects and 25 resources
3.96MiB (13.91%) for other data
28.50MiB in total image size, 26.38MiB in total file size
------------------------------------------------------------------------------------------------------------------------
Top 10 origins of code area: Top 10 object types in image heap:
1.07MiB o.g.n.runtime/com.oracle.svm.core.code 2.93MiB byte[] for code metadata
711.55KiB java.base/java.util 2.83MiB byte[] for string data
407.40KiB java.base/jdk.internal.classfile.impl 1.49MiB java.base/java.lang.String
312.38KiB java.base/com.sun.crypto.provider 1.08MiB java.base/java.lang.Class
311.41KiB java.base/java.lang 991.38KiB o.g.n.runtime/c.o.s.core.hub.DynamicHubCompanion
278.34KiB java.base/java.text 893.07KiB byte[] for general heap data
224.65KiB java.base/sun.security.provider 456.72KiB java.base/java.util.HashMap$Node
223.93KiB org.assertj.core.internal.bytebuddy.jar.asm 412.48KiB byte[] for reflection metadata
221.88KiB java.base/java.util.concurrent 351.45KiB o.g.n.runtime/c.o.s.c.h.ImageReflectionMetadata
174.66KiB java.base/sun.security.x509 316.34KiB java.base/j.u.concurrent.ConcurrentHashMap$Node
5.60MiB for 328 more packages 3.39MiB for 2235 more object types
Use '--emit build-report' to create a report with more details.
------------------------------------------------------------------------------------------------------------------------
Security report:
- Binary includes Java deserialization.
- CycloneDX SBOM with 20 component(s) is embedded in binary (1.08KiB). 3 type(s) could not be associated to a component.
- Advanced obfuscation not enabled; enable with '-H:AdvancedObfuscation=""' (experimental support).
------------------------------------------------------------------------------------------------------------------------
Recommendations:
G1GC: Use the G1 GC ('--gc=G1') for improved latency and throughput.
PGO: Use Profile-Guided Optimizations ('--pgo') for improved throughput.
HEAP: Set max heap for improved and more predictable memory usage.
CPU: Enable more CPU features with '-march=native' for improved performance.
------------------------------------------------------------------------------------------------------------------------
6.1s (7.8% of total time) in 750 GCs | Peak RSS: 1.76GiB | CPU load: 3.59
------------------------------------------------------------------------------------------------------------------------
Build artifacts:
/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile/io.jsonwebtoken.jjwt-gson_tests-tests (executable, 26.38MiB)
/tmp/native-image-build-output.json (build_info, 1.03KiB)
========================================================================================================================
Finished generating 'io.jsonwebtoken.jjwt-gson_tests-tests' in 1m 17s.
The build process encountered 5 warnings.
[native-image-plugin] Native Image written to: /home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile
> Task :nativeTest FAILED
[junit-platform-native] Running in 'test listener' mode using files matching pattern [junit-platform-unique-ids*] found in folder [/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/test-results/test/testlist] and its subfolders.
JUnit Platform on Native Image - report
----------------------------------------
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testCreatingAJWS() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testSignedJWTs() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testSignatureAlgorithms() FAILED
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest > testCompression() FAILED
Failures (4):
JUnit Jupiter:Jjwt_gsonTest:testCreatingAJWS()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testCreatingAJWS', methodParameterTypes = '']
=> java.lang.ExceptionInInitializerError
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testCreatingAJWS(Jjwt_gsonTest.java:55)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
[...]
Caused by: io.jsonwebtoken.lang.InstantiationException: Unable to instantiate class [io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier]
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:221)
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:173)
io.jsonwebtoken.Jwts.<clinit>(Jwts.java:1006)
[...]
Caused by: java.lang.InstantiationException: io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier
java.base@25.0.2/java.lang.Class.newInstance(DynamicHub.java:709)
io.jsonwebtoken.lang.Classes.newInstance(Classes.java:219)
[...]
Caused by: java.lang.NoSuchMethodException: io.jsonwebtoken.impl.DefaultJwtBuilder$Supplier.<init>()
java.base@25.0.2/java.lang.Class.checkConstructor(DynamicHub.java:1634)
java.base@25.0.2/java.lang.Class.getConstructor0(DynamicHub.java:1842)
java.base@25.0.2/java.lang.Class.newInstance(DynamicHub.java:702)
[...]
JUnit Jupiter:Jjwt_gsonTest:testSignedJWTs()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testSignedJWTs', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testSignedJWTs(Jjwt_gsonTest.java:45)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
[...]
JUnit Jupiter:Jjwt_gsonTest:testSignatureAlgorithms()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testSignatureAlgorithms', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.assertSignedSubject(Jjwt_gsonTest.java:126)
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testSignatureAlgorithms(Jjwt_gsonTest.java:91)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
[...]
JUnit Jupiter:Jjwt_gsonTest:testCompression()
MethodSource [className = 'io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest', methodName = 'testCompression', methodParameterTypes = '']
=> java.lang.NoClassDefFoundError: Could not initialize class io.jsonwebtoken.Jwts
io_jsonwebtoken.jjwt_gson.Jjwt_gsonTest.testCompression(Jjwt_gsonTest.java:83)
java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
[...]
Test run finished after 4 ms
[ 3 containers found ]
[ 0 containers skipped ]
[ 3 containers started ]
[ 0 containers aborted ]
[ 3 containers successful ]
[ 0 containers failed ]
[ 4 tests found ]
[ 0 tests skipped ]
[ 4 tests started ]
[ 0 tests aborted ]
[ 0 tests successful ]
[ 4 tests failed ]
[Incubating] Problems report is available at: file:///home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
14 actionable tasks: 6 executed, 8 up-to-date
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':nativeTest'.
> Process 'command '/home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/tests/src/io.jsonwebtoken/jjwt-gson/0.12.0/build/native/nativeTestCompile/io.jsonwebtoken.jjwt-gson_tests-tests'' finished with non-zero exit value 1
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to generate a Build Scan (Powered by Develocity).
> Get more help at https://help.gradle.org.
BUILD FAILED in 1m 26s
> Task :tckTest FAILED
[Incubating] Problems report is available at: file:///home/runner/work/graalvm-reachability-metadata/graalvm-reachability-metadata/build/reports/problems/problems-report.html
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':tckTest'.
> Test for io.jsonwebtoken:jjwt-gson:0.12.0 failed with exit code 1.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to generate a Build Scan (Powered by Develocity).
> Get more help at https://help.gradle.org.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.1.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD FAILED in 1m 28s
11 actionable tasks: 3 executed, 8 up-to-date
❌ ERROR: 'native-image run' for 0.12.7 failed with exit code 1.
FAILED[native-image run][0.12.7][GVM_TCK_NATIVE_IMAGE_MODE="future-defaults-all" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"]
native-image run on ubuntu-latest / JDK 25 / mode current-defaults
Failure kind: native-image run
OS: ubuntu-latest
JDK: 25
Native-image mode: current-defaults
Reproducer:
GVM_TCK_NATIVE_IMAGE_MODE="current-defaults" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"Runner log: https://github.com/oracle/graalvm-reachability-metadata/actions/runs/24556825477/job/71795458348
Last 300 lines of the log (excerpt truncated to fit the GitHub issue size limit):
native-image run on ubuntu-latest / JDK latest-ea / mode current-defaults
Failure kind: native-image run
OS: ubuntu-latest
JDK: latest-ea
Native-image mode: current-defaults
Reproducer:
GVM_TCK_NATIVE_IMAGE_MODE="current-defaults" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"Runner log: https://github.com/oracle/graalvm-reachability-metadata/actions/runs/24556825477/job/71795458445
Last 300 lines of the log (excerpt truncated to fit the GitHub issue size limit):
native-image run on ubuntu-latest / JDK latest-ea / mode future-defaults-all
Failure kind: native-image run
OS: ubuntu-latest
JDK: latest-ea
Native-image mode: future-defaults-all
Reproducer:
GVM_TCK_NATIVE_IMAGE_MODE="future-defaults-all" GVM_TCK_LV="0.12.7" ./gradlew clean test -Pcoordinates="io.jsonwebtoken:jjwt-gson:0.12.0"Runner log: https://github.com/oracle/graalvm-reachability-metadata/actions/runs/24556825477/job/71795458392
Last 300 lines of the log (excerpt truncated to fit the GitHub issue size limit):