Repository navigation
build(native): fix native binary tests after Jersey 2.48 and SDK 1.236.0 bumps - #718
Closed
stefanoboriero wants to merge 1 commit into
Closed
stefanoboriero wants to merge 1 commit into
stefanoboriero wants to merge 1 commit into
Conversation
…6.0 bumps Master's native binary tests have failed since 59bdd5c: - Jersey 2.48 makes JerseyClassAnalyzer a public class with a (ServiceLocator) constructor that HK2 instantiates reflectively. It had no reflection entry, so every API call printed an HK2 reification warning to stderr and failed the binary tests that assert empty stderr. - The SDK bump to 1.236.0 added Fusion-related model methods (e.g. getFusionVersion_JsonNullable) without regenerating reflection metadata, so invoking them in the native image failed. Register JerseyClassAnalyzer, and add the 77 missing SDK model methods that runReflectionConfigGenerator reports for 1.236.0. The generator's GraalVM 25 output (unified reachability-metadata.json) was not committed; only the missing entries were merged into the existing reflect-config.json. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cristianrcv
approved these changes
Oct 19, 2026
Contributor
Author
|
Closing in favour of #723, this was a hack from Claude manually editing files |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Master's native binary tests (Linux, MAC, MAC-arm64, Windows) have failed since #59bdd5cb ("update gradle minor and patch"); the previous run on b4ed951 was green. This fixes two reflection-metadata gaps in
conf/reflect-config.json.JerseyClassAnalyzerwent from a privately constructed class to a public one with a(ServiceLocator)constructor that HK2 instantiates reflectively. With no reflection entry, every API call loggedHK2 service reification failed for [...JerseyClassAnalyzer]to stderr, failing the tests that assert empty stderr (793 of 901 on Linux CI).getFusionVersion_JsonNullable,getFusionSnapshots_JsonNullable) on 7 classes had no invoke entries, failing withCannot reflectively invoke method ...(47 tests locally).Notes
./gradlew runReflectionConfigGeneratorreports as missing for 1.236.0. On GraalVM 25 the agent writes the new unifiedreachability-metadata.jsoninstead of updating the legacy files, so I did not commit its output; only the missing entries were merged into the existingreflect-config.jsonformat.conf/access-filter-file.jsononly records reflection fromio.seqera.tower.model/commands/responsescallers, so Jersey/HK2 internals must be added by hand (as the otherorg.glassfish.jersey.inject.hk2.*entries were)..sdkmanrcpins21.0.4-graal, butbuild.gradlerequires Oracle GraalVM 25; worth updating separately.picoclistays at 4.6.3.Testing
Built the native image locally with Oracle GraalVM 25.4.4 and ran the suite against it (
TOWER_CLI=build/native/nativeCompile/tw ./gradlew cleanTest test): 898 of 900 pass. The 2 remaining failures (TaskCmdTest.testTaskDetail*) are a local locale artifact (the test's expected value renders$0,000000under my default locale vs the binary's$0.000000); they pass without the binary and should pass in CI's en_US locale. CI on this PR is the real confirmation.🤖 Generated with Claude Code