Skip to content

[Native Image] Error: java.lang.NullPointerException: Cannot invoke "com.oracle.graal.pointsto.flow.context.object.AnalysisObject.type()" because "object" is null #10080

@nreid260

Description

@nreid260

Describe the Issue

We're transforming the Kotlin compiler (actually a wrapper around it) into a Graal native-image executable. The whole setup for this is pretty complicated and in a proprietary repo, so I can't give a good reproduction. I'm hoping that the bug will be obvious to someone who knows the code.

When we run the transformation, it crashes with java.lang.NullPointerException: Cannot invoke "com.oracle.graal.pointsto.flow.context.object.AnalysisObject.type()" because "object" is null

Using the latest version of GraalVM can resolve many issues.

GraalVM Version

GraalVM 23.0.1

Operating System and Version

Debian 6.9.10-1rodete5 (2024-09-04) x86_64 GNU/Linux

Build Command

PWD=/build/work/75829994245b702152ec5982923cc9bed902/google3 \
USE_NATIVE_IMAGE_JAVA_PLATFORM_MODULE_SYSTEM=true \
/tmp/tmp.mKZAMwtTmO_graal/bin/java \
-XX:+UseParallelGC \
-XX:+UnlockExperimentalVMOptions \
-XX:+EnableJVMCI \
-Dtruffle.TrustAllTruffleRuntimeProviders=true \
-Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
-Dgraalvm.ForcePolyglotInvalid=true \
-Dgraalvm.locatorDisabled=true \
-Dsubstratevm.HostLibC=glibc \
--add-exports=java.base/com.sun.crypto.provider=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.access=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.event=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.loader=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.logger=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.misc=jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto \
--add-exports=java.base/jdk.internal.module=org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.org.objectweb.asm=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.perf=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.platform=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.ref=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
--add-exports=java.base/jdk.internal.reflect=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.util=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.vm.annotation=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal.vm=org.graalvm.nativeimage.builder \
--add-exports=java.base/jdk.internal=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.invoke.util=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.net.www=org.graalvm.nativeimage.builder \
--add-exports=java.base/[sun.net](https://www.google.com/url?q=http://sun.net&sa=D)=org.graalvm.nativeimage.builder \
--add-exports=java.base/[sun.nio.ch](https://www.google.com/url?q=http://sun.nio.ch&sa=D)=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile \
--add-exports=java.base/sun.reflect.annotation=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.factory=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.reflectiveObjects=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.repository=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.scope=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.reflect.generics.tree=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.jca=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.provider=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.ssl=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.util=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.security.x509=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.text.spi=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.calendar=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.cldr=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.locale.provider=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.locale=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util.resources=org.graalvm.nativeimage.builder \
--add-exports=java.base/sun.util=org.graalvm.nativeimage.builder \
--add-exports=java.management/com.sun.jmx.mbeanserver=org.graalvm.nativeimage.builder \
--add-exports=java.management/sun.management=org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.aarch64=jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.aarch64%3Djdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.amd64=jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.amd64%3Djdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.code.site=jdk.graal.compiler,org.graalvm.nativeimage.builder](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.code.site%3Djdk.graal.compiler,org.graalvm.nativeimage.builder&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.code.stack=jdk.graal.compiler,org.graalvm.nativeimage.builder](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.code.stack%3Djdk.graal.compiler,org.graalvm.nativeimage.builder&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.code=jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.code%3Djdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.common=jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.common%3Djdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=jdk.graal.compiler](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64%3Djdk.graal.compiler&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=jdk.graal.compiler](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64%3Djdk.graal.compiler&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.hotspot.riscv64=jdk.graal.compiler](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.hotspot.riscv64%3Djdk.graal.compiler&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.hotspot=jdk.graal.compiler,org.graalvm.nativeimage.builder](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.hotspot%3Djdk.graal.compiler,org.graalvm.nativeimage.builder&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.meta=jdk.graal.compiler,org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.meta%3Djdk.graal.compiler,org.graalvm.nativeimage.base,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,org.graalvm.truffle.compiler&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.riscv64=jdk.graal.compiler,org.graalvm.nativeimage.builder](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.riscv64%3Djdk.graal.compiler,org.graalvm.nativeimage.builder&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.runtime=jdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.runtime%3Djdk.graal.compiler,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.pointsto&sa=D) \
--add-exports=[jdk.internal.vm.ci/jdk.vm.ci.services=jdk.graal.compiler,org.graalvm.nativeimage.builder](https://www.google.com/url?q=http://jdk.internal.vm.ci/jdk.vm.ci.services%3Djdk.graal.compiler,org.graalvm.nativeimage.builder&sa=D) \
--add-exports=jdk.jfr/jdk.jfr.events=org.graalvm.nativeimage.builder \
--add-exports=jdk.jfr/jdk.jfr.internal.event=org.graalvm.nativeimage.builder \
--add-exports=jdk.jfr/jdk.jfr.internal.jfc=org.graalvm.nativeimage.builder \
--add-exports=jdk.jfr/jdk.jfr.internal=org.graalvm.nativeimage.builder \
--add-exports=jdk.management/com.sun.management.internal=org.graalvm.nativeimage.builder \
-XX:+UseJVMCINativeLibrary \
-Xss10m \
-XX:MaxRAMPercentage=94.27439371744791 \
-XX:GCTimeRatio=9 \
-XX:+ExitOnOutOfMemoryError \
-Djava.awt.headless=true \
'-Dorg.graalvm.vendor=GraalVM Community' \
-Dorg.graalvm.vendorurl=[https://www.graalvm.org/](https://www.google.com/url?q=https://www.graalvm.org/&sa=D) \
'-Dorg.graalvm.vendorversion=GraalVM CE 23.0.1+11.1' \
-Dorg.graalvm.version=24.1.1 \
-Dcom.oracle.graalvm.isaot=true \
-Djava.system.class.loader=com.oracle.svm.hosted.NativeImageSystemClassLoader \
-Xshare:off \
-Djdk.reflect.useOldSerializableConstructor=true \
-Djdk.internal.lambda.disableEagerInitialization=true \
-Djdk.internal.lambda.eagerlyInitialize=false \
-Djava.lang.invoke.InnerClassLambdaMetafactory.initializeLambdas=false \
-Djava.lang.invoke.MethodHandle.DONT_INLINE_THRESHOLD=-1 \
-Djava.lang.invoke.MethodHandle.PROFILE_GWT=false \
-Xms8G \
--add-modules=ALL-DEFAULT \
--module-path \
/tmp/tmp.mKZAMwtTmO_graal/lib/svm/builder/svm.jar:/tmp/tmp.mKZAMwtTmO_graal/lib/svm/builder/objectfile.jar:/tmp/tmp.mKZAMwtTmO_graal/lib/svm/builder/pointsto.jar:/tmp/tmp.mKZAMwtTmO_graal/lib/svm/builder/native-image-base.jar:/tmp/tmp.mKZAMwtTmO_graal/lib/svm/builder/svm-foreign.jar \
--module \
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner \
-keepalive \
/proc/6976/comm \
-imagecp \
/build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1 \
-imagemp \
/tmp/tmp.mKZAMwtTmO_graal/lib/svm/library-support.jar \
-H:CLibraryPath=/tmp/tmp.mKZAMwtTmO_graal/lib/svm/clibraries/linux-amd64/glibc,/tmp/tmp.mKZAMwtTmO_graal/lib/svm/clibraries/linux-amd64,/tmp/tmp.mKZAMwtTmO_graal/lib/svm/clibraries \
-H:Path@driver=/build/work/75829994245b702152ec5982923cc9bed902/google3/blaze-out/k8-opt-ST-2b69d2229f1c/bin/java/com/google/devtools/kotlin/compiler/wrapper/graal \
-H:AddExports@user+api=org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk=ALL-UNNAMED \
-H:AddExports@user+api=org.graalvm.nativeimage.builder/com.oracle.svm.hosted=ALL-UNNAMED \
-H:Features@user+api=com.google.graal.feature.GoogleJniFeature \
-H:+ReportExceptionStackTraces@user \
-H:+StaticExecutableWithDynamicLibC@user \
-H:Log@user=registerResource:3 \
-H:-CheckToolchain@user \
-H:+AddAllCharsets@user \
-H:CCompilerOption@user=@/tmp/tmp.BoJGyObk5D_clang_params \
-H:NativeLinkerOption@user=@/tmp/tmp.UrWqh6pcNI_ld_params \
-H:FallbackThreshold@user+api=0 \
-H:+ReportUnsupportedElementsAtRuntime@user+api \
-H:MicroArchitecture@user+api=x86-64-v2 \
'-H:Name@manifest from file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1=53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1' \
'-H:Class@manifest from file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1=com.google.devtools.kotlin.compiler.wrapper.KotlinBuilder' \
'-H:ResourceConfigurationResources@jar:file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1!/META-INF/native-image/org.jline/jline-terminal/native-image.properties=META-INF/native-image/org.jline/jline-terminal/resource-config.json' \
'-H:ReflectionConfigurationResources@jar:file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1!/META-INF/native-image/org.jline/jline-terminal/native-image.properties=META-INF/native-image/org.jline/jline-terminal/reflection-config.json' \
'-H:ReflectionConfigurationResources@jar:file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1!/META-INF/native-image/picocli-generated/com.google.devtools.kotlin.compiler.wrapper.KotlinBuilderArgs/reflect-config.json+api=META-INF/native-image/picocli-generated/com.google.devtools.kotlin.compiler.wrapper.KotlinBuilderArgs/reflect-config.json' \
'-H:ResourceConfigurationResources@jar:file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1!/META-INF/native-image/picocli-generated/com.google.devtools.kotlin.compiler.wrapper.KotlinBuilderArgs/resource-config.json+api=META-INF/native-image/picocli-generated/com.google.devtools.kotlin.compiler.wrapper.KotlinBuilderArgs/resource-config.json' \
'-H:ResourceConfigurationResources@jar:file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1!/META-INF/native-image/org.jline/jline-terminal/resource-config.json+api=META-INF/native-image/org.jline/jline-terminal/resource-config.json' \
'-H:DynamicProxyConfigurationResources@jar:file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1!/META-INF/native-image/picocli-generated/com.google.devtools.kotlin.compiler.wrapper.KotlinBuilderArgs/proxy-config.json+api=META-INF/native-image/picocli-generated/com.google.devtools.kotlin.compiler.wrapper.KotlinBuilderArgs/proxy-config.json' \
-H:Name@user+api=KotlinBuilder.k8_notjar \
-H:CCompilerPath@user+api=third_party/crosstool/v18/stable/toolchain/bin/wrapped_clang \
-H:ConfigurationFileDirectories@user=/build/work/75829994245b702152ec5982923cc9bed902/google3/blaze-out/k8-opt-ST-2b69d2229f1c/bin/java/com/google/devtools/kotlin/compiler/wrapper/graal/manual_config_graal_config,/build/work/75829994245b702152ec5982923cc9bed902/google3/blaze-out/k8-opt-ST-2b69d2229f1c/bin/java/com/google/devtools/kotlin/compiler/wrapper/graal/sampled_config_1.9_graal_config,/build/work/75829994245b702152ec5982923cc9bed902/google3/blaze-out/k8-opt-ST-2b69d2229f1c/bin/java/com/google/devtools/kotlin/compiler/wrapper/graal/sampled_config_2.0_graal_config \
-R:MinHeapSize=4096m \
-H:NumberOfThreads@user+api=4 \
-H:-DeleteLocalSymbols@user \
-H:+PreserveFramePointer@user \
-H:ImageBuildID@driver=2e8acab7-4ce1-dcd8-f7fc-0f49045893ce \
'-H:Features@jar:file:///tmp/tmp.mKZAMwtTmO_graal/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:///tmp/tmp.mKZAMwtTmO_graal/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'

Expected Behavior

The transformation should succeed, emitting a native executable for the original program.

Actual Behavior

Warning: Option 'DynamicProxyConfigurationResources' is deprecated and might be removed in a future release: This can be caused by a proxy-config.json file in your META-INF directory. Consider including proxy configuration in the reflection section of reachability-metadata.md instead.. Please refer to the GraalVM release notes.
========================================================================================================================
GraalVM Native Image: Generating 'KotlinBuilder.k8_notjar' (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
------------------------------------------------------------------------------------------------------------------------
Warning: Unknown attribute(s) [allowAllReflection] in reflection class descriptor object
[1/8] Initializing...                                                                                   (23.4s @ 0.85GB)
 Java version: 23.0.1+11, vendor version: GraalVM CE 23.0.1+11.1
 Graal compiler: optimization level: 2, target machine: x86-64-v2
 C compiler: wrapped_clang (null, null, 0.0.0)
 Garbage collector: Serial GC (max heap size: 80% of RAM)
 2 user-specific feature(s):
 - com.google.graal.feature.GoogleJniFeature
 - com.oracle.svm.thirdparty.gson.GsonFeature
------------------------------------------------------------------------------------------------------------------------
 8 experimental option(s) unlocked:
 - '-H:CCompilerOption' (alternative API option(s): --native-compiler-options=@/tmp/tmp.BoJGyObk5D_clang_params; origin(s): command line)
 - '-H:-DeleteLocalSymbols' (origin(s): command line)
 - '-H:+StaticExecutableWithDynamicLibC' (alternative API option(s): --static-nolibc; origin(s): command line)
 - '-H:Log' (origin(s): command line)
 - '-H:ResourceConfigurationResources' (origin(s): 'META-INF/native-image/org.jline/jline-terminal/native-image.properties' in 'file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1')
 - '-H:-CheckToolchain' (origin(s): command line)
 - '-H:+PreserveFramePointer' (origin(s): command line)
 - '-H:ReflectionConfigurationResources' (origin(s): 'META-INF/native-image/org.jline/jline-terminal/native-image.properties' in 'file:///build/cas/53b/53b0093d45614508827fd633bc767abeccc115f969be93429e17652f96451b4a_020005b996d1')
------------------------------------------------------------------------------------------------------------------------
Build resources:
 - 10.06GB of memory (83.8% of 12.00GB system memory, determined at start)
 - 4 thread(s) (12.1% of 33 available processor(s), set via '--parallelism=4')
[2/8] Performing analysis...  [****]                                                                   (142.4s @ 4.23GB)
   32,221 reachable types   (92.5% of   34,848 total)
   53,386 reachable fields  (69.5% of   76,761 total)
  196,363 reachable methods (67.3% of  291,824 total)
    9,934 types,   512 fields, and 2,159 methods registered for reflection
       68 types,    58 fields, and    56 methods registered for JNI access
        4 native libraries: dl, pthread, rt, z
[3/8] Building universe...                                                                              (29.1s @ 5.36GB)
[4/8] Parsing methods...      [****]                                                                    (18.3s @ 5.63GB)
[5/8] Inlining methods...     [***]                                                                     (13.4s @ 6.68GB)
[6/8] Compiling methods...    [************]                                                           (153.9s @ 5.01GB)
[7/8] Laying out methods...   [*****]                                                                   (26.8s @ 4.45GB)

Error: java.lang.NullPointerException: Cannot invoke "com.oracle.graal.pointsto.flow.context.object.AnalysisObject.type()" because "object" is null
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.graal.pointsto.flow.context.object.AnalysisObject.type()" because "object" is null
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.TypeState.forExactType(TypeState.java:174)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.TypeState.forExactType(TypeState.java:169)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.PointsToAnalysis.onTypeInstantiated(PointsToAnalysis.java:629)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisUniverse.onTypeInstantiated(AnalysisUniverse.java:672)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.onInstantiated(AnalysisType.java:529)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.registerAsInstantiated(AnalysisType.java:522)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.onReachable(AnalysisType.java:627)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AtomicUtils.atomicSetAndRun(AtomicUtils.java:49)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable(AnalysisType.java:591)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.lambda$registerAsReachable$8(AnalysisType.java:583)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.forAllSuperTypes(AnalysisType.java:730)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.forAllSuperTypes(AnalysisType.java:733)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.forAllSuperTypes(AnalysisType.java:713)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable(AnalysisType.java:583)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapScanner.lambda$createImageHeapInstance$9(ImageHeapScanner.java:368)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisFuture.ensureDone(AnalysisFuture.java:69)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapConstant.ensureReaderInstalled(ImageHeapConstant.java:143)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapScanner.ensureReaderInstalled(ImageHeapScanner.java:720)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.HeapSnapshotVerifier$ScanningObserver.verifyArrayElementValue(HeapSnapshotVerifier.java:280)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.HeapSnapshotVerifier$ScanningObserver.forNonNullArrayElement(HeapSnapshotVerifier.java:248)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.ObjectScanner.scanArrayElement(ObjectScanner.java:293)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.ObjectScanner.scanArray(ObjectScanner.java:281)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.ObjectScanner.doScan(ObjectScanner.java:460)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.ObjectScanner.lambda$scanConstant$8(ObjectScanner.java:315)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:166)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:152)
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.compute(ForkJoinTask.java:1726)
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.compute(ForkJoinTask.java:1717)
	at java.base/java.util.concurrent.ForkJoinTask$InterruptibleTask.exec(ForkJoinTask.java:1641)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base/java.util.concurrent.ForkJoinPool.externalHelpQuiesce(ForkJoinPool.java:2535)
	at java.base/java.util.concurrent.ForkJoinPool.helpQuiescePool(ForkJoinPool.java:2569)
	at java.base/java.util.concurrent.ForkJoinPool.awaitQuiescence(ForkJoinPool.java:3808)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.complete(CompletionExecutor.java:208)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.HeapSnapshotVerifier.checkHeapSnapshot(HeapSnapshotVerifier.java:105)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.heap.SVMImageHeapVerifier.checkHeapSnapshot(SVMImageHeapVerifier.java:51)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.HeapSnapshotVerifier.checkHeapSnapshot(HeapSnapshotVerifier.java:84)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:696)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:554)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:528)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:711)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:139)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:94)
Internal exception: com.oracle.graal.pointsto.util.AnalysisError: java.lang.NullPointerException: Cannot invoke "com.oracle.graal.pointsto.flow.context.object.AnalysisObject.type()" because "object" is null
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisFuture.setException(AnalysisFuture.java:55)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:322)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AnalysisFuture.ensureDone(AnalysisFuture.java:69)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapConstant.ensureReaderInstalled(ImageHeapConstant.java:143)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapScanner.ensureReaderInstalled(ImageHeapScanner.java:720)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.HeapSnapshotVerifier$ScanningObserver.verifyArrayElementValue(HeapSnapshotVerifier.java:280)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.HeapSnapshotVerifier$ScanningObserver.forNonNullArrayElement(HeapSnapshotVerifier.java:248)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.ObjectScanner.scanArrayElement(ObjectScanner.java:293)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.ObjectScanner.scanArray(ObjectScanner.java:281)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.ObjectScanner.doScan(ObjectScanner.java:460)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.ObjectScanner.lambda$scanConstant$8(ObjectScanner.java:315)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:166)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:152)
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.compute(ForkJoinTask.java:1726)
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.compute(ForkJoinTask.java:1717)
	at java.base/java.util.concurrent.ForkJoinTask$InterruptibleTask.exec(ForkJoinTask.java:1641)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base/java.util.concurrent.ForkJoinPool.externalHelpQuiesce(ForkJoinPool.java:2535)
	at java.base/java.util.concurrent.ForkJoinPool.helpQuiescePool(ForkJoinPool.java:2569)
	at java.base/java.util.concurrent.ForkJoinPool.awaitQuiescence(ForkJoinPool.java:3808)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.CompletionExecutor.complete(CompletionExecutor.java:208)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.HeapSnapshotVerifier.checkHeapSnapshot(HeapSnapshotVerifier.java:105)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.heap.SVMImageHeapVerifier.checkHeapSnapshot(SVMImageHeapVerifier.java:51)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.HeapSnapshotVerifier.checkHeapSnapshot(HeapSnapshotVerifier.java:84)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:696)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:554)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:528)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:711)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:139)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:94)
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.graal.pointsto.flow.context.object.AnalysisObject.type()" because "object" is null
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.TypeState.forExactType(TypeState.java:174)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.typestate.TypeState.forExactType(TypeState.java:169)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.PointsToAnalysis.onTypeInstantiated(PointsToAnalysis.java:629)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisUniverse.onTypeInstantiated(AnalysisUniverse.java:672)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.onInstantiated(AnalysisType.java:529)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.registerAsInstantiated(AnalysisType.java:522)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.onReachable(AnalysisType.java:627)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.util.AtomicUtils.atomicSetAndRun(AtomicUtils.java:49)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable(AnalysisType.java:591)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.lambda$registerAsReachable$8(AnalysisType.java:583)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.forAllSuperTypes(AnalysisType.java:730)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.forAllSuperTypes(AnalysisType.java:733)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.forAllSuperTypes(AnalysisType.java:713)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable(AnalysisType.java:583)
	at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.heap.ImageHeapScanner.lambda$createImageHeapInstance$9(ImageHeapScanner.java:368)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	... 28 more
------------------------------------------------------------------------------------------------------------------------
                        22.0s (5.3% of total time) in 95 GCs | Peak RSS: 8.78GB | CPU load: 3.48
========================================================================================================================
Failed generating 'KotlinBuilder.k8_notjar' after 6m 54s.
com.oracle.svm.driver.NativeImage$NativeImageError
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.showError(NativeImage.java:2300)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.build(NativeImage.java:1888)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1847)
	at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.main(NativeImage.java:1829)
	at [email protected]/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)```

### Steps to Reproduce

I can try to communicate more on this, but there are no realistic repro steps outside of our repository.

### Additional Context

_No response_

### Build Log Output and Error Messages

_No response_

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions