Open
Description
Describe the Issue
I am trying to find out classes with a special annotation that get into native image heap and do something based on that annotation values. This seems to fail on GraalVM 24.0.1. See the attached demo project.
Using the latest version of GraalVM can resolve many issues.
- I tried with the latest version of GraalVM.
GraalVM Version
openjdk version "24.0.1" 2025-04-15
OpenJDK Runtime Environment GraalVM CE 24.0.1+9.1 (build 24.0.1+9-jvmci-b01)
OpenJDK 64-Bit Server VM GraalVM CE 24.0.1+9.1 (build 24.0.1+9-jvmci-b01, mixed mode, sharing)
Operating System and Version
Ubuntu
Build Command
Unzip NativeImageHeap.zip and then run:
JAVA_HOME=/graalvm-24/ mvn -f NativeInspectHeap/ clean install
the execution fails with
> jdk.graal.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.util.AnalysisError: java.lang.UnsatisfiedLinkError: 'java.lang.String com.oracle.svm.core.hub.DynamicHub.getTypeName()'
at parsing com.oracle.svm.core.hub.DynamicHub.fromClass(DynamicHub.java:782)
at parsing com.oracle.svm.core.snippets.SubstrateIsArraySnippets.classIsArray(SubstrateIsArraySnippets.java:35)
at parsing jdk.graal.compiler.replacements.IsArraySnippets.objectIsArraySnippet(IsArraySnippets.java:42)
Expected Behavior
- I believe all
Type
instances in the heap should properly implementgetTypeName()
- I believe all
Type
instances that are alsoAnnotatedElement
instances should implementgetAnnotation
- definitely calling these methods shouldn't break the
native-image
compilation with interenal error
Actual Behavior
the execution fails with
> jdk.graal.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.util.AnalysisError: java.lang.UnsatisfiedLinkError: 'java.lang.String com.oracle.svm.core.hub.DynamicHub.getTypeName()'
at parsing com.oracle.svm.core.hub.DynamicHub.fromClass(DynamicHub.java:782)
at parsing com.oracle.svm.core.snippets.SubstrateIsArraySnippets.classIsArray(SubstrateIsArraySnippets.java:35)
at parsing jdk.graal.compiler.replacements.IsArraySnippets.objectIsArraySnippet(IsArraySnippets.java:42)
Steps to Reproduce
Unzip NativeImageHeap.zip and then run:
JAVA_HOME=/graalvm-24/ mvn -f NativeInspectHeap/ clean install
Additional Context
No response
Build Log Output and Error Messages
No response