It seems the upgrade prevents finishing the nativeTest compilation. It also seems to be related to groovy - when the dependency is fixed to 4.0.6 the compilation passes. With any newer version (used by Spring Boot 3.0.2 and later) it fails. I'll provide a sample project. It happens even in case there is no real groovy usage in the tests.

penjdk version "17.0.6" 2023-01-17
OpenJDK Runtime Environment GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13)
OpenJDK 64-Bit Server VM GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13, mixed mode, sharing)

Error is:

org.codehaus.groovy.util.ReferenceType$1 was unintentionally initialized at build time. To see why org.codehaus.groovy.util.ReferenceType$1 got initialized use --trace-class-initialization=org.codehaus.groovy.util.ReferenceType$1
To see how the classes got initialized, use --trace-class-initialization=com.sun.beans.introspect.ClassInfo,org.codehaus.groovy.runtime.dgmimpl.arrays.ShortArrayGetAtMetaMethod,org.codehaus.groovy.runtime.dgmimpl.arrays.CharacterArrayGetAtMetaMethod,org.codehaus.groovy.util.ReferenceType$3,org.codehaus.groovy.runtime.dgmimpl.arrays.ShortArrayPutAtMetaMethod,org.codehaus.groovy.reflection.stdclasses.LongCachedClass,org.codehaus.groovy.runtime.dgmimpl.NumberNumberPlus,groovy.lang.GroovySystem,java.beans.Introspector,org.codehaus.groovy.util.ReferenceBundle,com.sun.beans.util.Cache$Kind$1,org.codehaus.groovy.util.ReferenceType$2,org.codehaus.groovy.runtime.dgmimpl.arrays.DoubleArrayGetAtMetaMethod,org.codehaus.groovy.reflection.CachedClass$2,org.codehaus.groovy.runtime.dgmimpl.arrays.CharacterArrayPutAtMetaMethod,org.codehaus.groovy.util.LazyReference,com.sun.beans.util.Cache$Kind,org.codehaus.groovy.vmplugin.v8.Java8,org.codehaus.groovy.reflection.CachedClass$3,org.codehaus.groovy.reflection.stdclasses.NumberCachedClass,org.codehaus.groovy.runtime.dgmimpl.arrays.IntegerArrayGetAtMetaMethod,org.codehaus.groovy.runtime.dgmimpl.NumberNumberMultiply,org.codehaus.groovy.reflection.stdclasses.FloatCachedClass,org.codehaus.groovy.reflection.stdclasses.CachedClosureClass,org.codehaus.groovy.runtime.dgmimpl.arrays.ArrayGetAtMetaMethod,org.codehaus.groovy.runtime.dgmimpl.arrays.LongArrayPutAtMetaMethod,org.codehaus.groovy.reflection.stdclasses.ArrayCachedClass,org.codehaus.groovy.reflection.ClassInfo,org.codehaus.groovy.vmplugin.v8.IndyInterface,org.codehaus.groovy.reflection.stdclasses.BooleanCachedClass,org.codehaus.groovy.vmplugin.v8.IndyInterface$CallType,org.codehaus.groovy.runtime.dgmimpl.arrays.ObjectArrayGetAtMetaMethod,com.sun.beans.util.Cache$Kind$3,org.codehaus.groovy.runtime.dgmimpl.arrays.ObjectArrayPutAtMetaMethod,org.codehaus.groovy.runtime.dgmimpl.arrays.ByteArrayPutAtMetaMethod,org.codehaus.groovy.reflection.stdclasses.StringCachedClass,org.codehaus.groovy.reflection.GroovyClassValueFactory,org.codehaus.groovy.runtime.dgmimpl.arrays.DoubleArrayPutAtMetaMethod,org.codehaus.groovy.runtime.dgmimpl.arrays.FloatArrayGetAtMetaMethod,org.codehaus.groovy.runtime.dgmimpl.arrays.FloatArrayPutAtMetaMethod,org.codehaus.groovy.reflection.stdclasses.IntegerCachedClass,com.sun.beans.util.Cache$Kind$2,org.codehaus.groovy.reflection.stdclasses.BigDecimalCachedClass,org.codehaus.groovy.reflection.CachedClass$4,org.codehaus.groovy.reflection.CachedClass$5,org.codehaus.groovy.reflection.CachedClass$6,org.codehaus.groovy.util.ReferenceType,org.codehaus.groovy.runtime.MetaClassHelper,org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport,org.codehaus.groovy.reflection.stdclasses.DoubleCachedClass,org.codehaus.groovy.reflection.stdclasses.CachedSAMClass,org.codehaus.groovy.reflection.CachedClass$7,org.codehaus.groovy.runtime.m12n.SimpleExtensionModule,groovy.lang.MetaClassImpl,org.codehaus.groovy.runtime.dgmimpl.arrays.BooleanArrayPutAtMetaMethod,org.codehaus.groovy.runtime.GroovyCategorySupport,org.codehaus.groovy.runtime.dgmimpl.NumberNumberMetaMethod,org.codehaus.groovy.reflection.ClassInfo$LazyClassLoaderRef,org.codehaus.groovy.runtime.dgmimpl.NumberNumberMinus,org.codehaus.groovy.runtime.dgmimpl.arrays.IntegerArrayPutAtMetaMethod,org.codehaus.groovy.runtime.DefaultGroovyMethods,org.codehaus.groovy.util.ReferenceType$4,org.codehaus.groovy.reflection.CachedClass$1,org.codehaus.groovy.runtime.dgmimpl.arrays.ArrayPutAtMetaMethod,org.codehaus.groovy.runtime.dgmimpl.arrays.ByteArrayGetAtMetaMethod,org.codehaus.groovy.reflection.ReflectionCache,org.codehaus.groovy.reflection.ReflectionUtils,org.codehaus.groovy.reflection.CachedClass$8,org.codehaus.groovy.runtime.dgmimpl.arrays.BooleanArrayGetAtMetaMethod,org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule,org.codehaus.groovy.reflection.stdclasses.CharacterCachedClass,org.codehaus.groovy.reflection.stdclasses.BigIntegerCachedClass,org.codehaus.groovy.reflection.CachedClass,org.codehaus.groovy.reflection.stdclasses.ObjectCachedClass,org.codehaus.groovy.reflection.ClassInfo$LazyCachedClassRef,org.codehaus.groovy.runtime.dgmimpl.arrays.LongArrayGetAtMetaMethod,org.codehaus.groovy.runtime.dgmimpl.NumberNumberDiv,org.codehaus.groovy.runtime.dgmimpl.arrays.ArrayMetaMethod,org.codehaus.groovy.vmplugin.VMPluginFactory,org.codehaus.groovy.vmplugin.v8.CacheableCallSite,org.apache.groovy.plugin.GroovyRunnerRegistry,org.codehaus.groovy.util.ReferenceType$1
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.abort(UserError.java:73)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ProvenSafeClassInitializationSupport.checkDelayedInitialization(ProvenSafeClassInitializationSupport.java:273)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.duringAnalysis(ClassInitializationFeature.java:164)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$10(NativeImageGenerator.java:748)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.FeatureHandler.forEachFeature(FeatureHandler.java:85)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.lambda$runPointsToAnalysis$11(NativeImageGenerator.java:748)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.AbstractAnalysisEngine.runAnalysis(AbstractAnalysisEngine.java:162)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:745)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:578)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:535)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:403)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:580)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:128)
Error: Image build request failed with exit status 1

Comment From: phejl

See https://github.com/phejl/spring-boot-34405, specifically check the https://github.com/phejl/spring-boot-34405/blob/main/build.gradle and comments within the file.

Comment From: wilkinsona

Thanks for the report. Unfortunately, there are a number of problems with Groovy and GraalVM at the moment. They'll have to be addressed in Groovy itself or, perhaps, in Graal. As a result, we don't support Groovy at the moment.

Comment From: phejl

@wilkinsona Thank you. I was not expecting groovy support. It just looked strange. Perhaps I should mention this is triggered by org.springframework.cloud:spring-cloud-starter-contract-stub-runner when it is just added as dependency without any real usage. Not a problem for me just wanted to let you know.

Comment From: wilkinsona

FYI, @marcingrzejszczak.