Open scrocquesel opened 1 month ago
Hi @scrocquesel thank you for the report.
We'll investigate the build time error.
To anyone blocked by this: the workaround is to pin the SDK version <= 2.28.29.
@scrocquesel a fix was released via https://github.com/aws/aws-sdk-java-v2/pull/5692 in version 2.29.6
.
Please test it out and let us know if you have any questions or comments.
@scrocquesel a fix was released via #5692 in version
2.29.6
.Please test it out and let us know if you have any questions or comments.
Thank you, with the fix, I managed to provided graalvm support for Quarkus. I left a comment on the PR, if reflection to call method can be replaced with the original Function<>
design. This would avoid having to explicitely add reflection metadata for native compilation.
Describe the bug
When compiling in native mode with Quarkus, the build failed because
Crc64NvmeChecksum
class has a method exposing an optional class.This was introduced in 2.29.0 (2.28.29 build fine).
Regression Issue
Expected Behavior
I can compile without build issue
Current Behavior
Reproduction Steps
<awssdk.version>2.29.0</awssdk.version>
/mvnw -B formatter:validate verify --file pom.xml -Dnative
Possible Solution
The easiest solution would be to inline the private method
getCrc64Nvme
in the constructor in theCrc64NvmeChecksum
.Additional Information/Context
I tried adding a GraalVM substitution, but the target class inherits from
BaseCrcChecksum
, so I can’t substitute the whole class. Additionally, removing the private method isn’t feasible, as the signature requires the CRT package to be present for GraalVM to introspect the class.AWS Java SDK version used
2.29.0
JDK version used
17
Operating System and version
linux