-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sun.java2d.cmm.lcms.LCMS#setTagDataNative substitution is broken on JDK17 #19356
Comments
Hello @cstancu, I had a quick look at the Quarkus substitution class for this one https://github.com/quarkusio/quarkus/blob/main/core/runtime/src/main/java/io/quarkus/runtime/graal/LCMSSubstitutions.java#L8 and it doesn't seem straightforward to add some kind of logic which will allow rest of the substitution methods in that class be used in all Java versions, except for the Substitution classes can't be extended either (and are mandated to be So I guess we just have to have 2 classes with all those substitutions copied over (and maintained) and mark one of those as |
Furthermore, I see that GraalVM itself has certain registrations it does for JNI for this specific |
I worked on #19534 last week but forgot to push it. I think we should probably reconsider if these substitutions are even useful but it's gonna need some cautious work as we need to make sure our images don't become significantly larger for whatever reason. So for now, I would be in favor of fixing the issue quickly so that we can benefit again from the GraalVM team testing us with GraalVM JDK 17. Does it make sense? |
BTW, there are more changes than just the one mentioned here. I tried to catch them all but wasn't able to test things. I hope @zakkak will be able to help on this. |
Yes, that sounds fine to me. |
The changes for this break compatibility with GraalVM 20.3, as it lacks the JDK16OrEarlier check class. If thats expected its ok, but maybe it should be dropped from the 'supported versions' check so it fails in a more obvious way? |
Ah, actually I see this is likely being covered already in #19645 |
heh, ninja'd...yep, I didnt see it as I searched for graal and it didnt hit |
Describe the bug
On JDK17
sun.java2d.cmm.lcms.LCMS#setTagDataNative
is declared asstatic
. Prior to JDK17 this method was notstatic
so now the Quarkus substitution leads to a build time error:Expected behavior
No response
Actual behavior
No response
How to Reproduce?
This is currently reproducible only with JDK17 GraalVM builds.
Output of
uname -a
orver
No response
Output of
java -version
No response
GraalVM version (if different from Java)
No response
Quarkus version or git rev
No response
Build tool (ie. output of
mvnw --version
orgradlew --version
)No response
Additional information
The substitution should be version specific with an alternative declaration for JDK17 using
onlyWith = JDK17OrLater.class
.The text was updated successfully, but these errors were encountered: