None of the 1.25.x
versions are compatible with GraalVM. They all fail with the same error.
Caused by: java.lang.NullPointerException: Cannot invoke "com.google.common.collect.ImmutableList.size()" because "list" is null
It's also not possible to override that dependency to be initialized at runtime because of its own settings, requiring initialization at build time.
Versions 1.24.x
all suffer from CVE-2025-49146
Example BOM <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>24</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.google.cloud.sql</groupId> <artifactId>postgres-socket-factory</artifactId> <version>1.24.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <image> <builder>paketobuildpacks/builder-jammy-buildpackless-tiny</builder><!--required for AArch64/M1 support --> <buildpacks> <buildpack>paketobuildpacks/oracle</buildpack> <buildpack>paketobuildpacks/java-native-image</buildpack> </buildpacks> </image> </configuration> </plugin> </plugins> </build> </project>Stacktrace
[INFO] [creator] ================================================================================ [INFO] [creator] GraalVM Native Image: Generating 'com.example.demo.DemoApplication' (executable)... [INFO] [creator] ================================================================================ [INFO] [creator] For detailed information and explanations on the build output, visit: [INFO] [creator] https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md [INFO] [creator] -------------------------------------------------------------------------------- [INFO] [creator] [INFO] [creator] [1/8] Initializing... (0.0s @ 0.14GB) [INFO] [creator] Error: Class initialization of com.google.common.collect.RegularImmutableList failed. Use the option [INFO] [creator] [INFO] [creator] '--initialize-at-run-time=com.google.common.collect.RegularImmutableList' [INFO] [creator] [INFO] [creator] to explicitly request initialization of this class at run time. Exception thrown by the class initializer: [INFO] [creator] [INFO] [creator] java.lang.NullPointerException: Cannot invoke "com.google.common.collect.ImmutableList.size()" because "list" is null [INFO] [creator] at com.google.common.collect.ImmutableList$Itr.<init>(ImmutableList.java:400) [INFO] [creator] at com.google.common.collect.ImmutableList.<clinit>(ImmutableList.java:393) [INFO] [creator] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) [INFO] [creator] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1166) [INFO] [creator] (internal stack frames of the image generator are omitted) [INFO] [creator] [INFO] [creator] [INFO] [creator] Caused by: java.lang.ExceptionInInitializerError [INFO] [creator] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) [INFO] [creator] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1166) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.ensureClassInitialized(ClassInitializationSupport.java:200) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.forceInitializeHosted(ClassInitializationSupport.java:346) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.initializeAtBuildTime(ClassInitializationSupport.java:266) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.initializeAtBuildTime(ClassInitializationSupport.java:276) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.processClassInitializationOption(ClassInitializationFeature.java:119) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.lambda$processClassInitializationOptions$0(ClassInitializationFeature.java:78) [INFO] [creator] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716) [INFO] [creator] at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:807) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.processClassInitializationOptions(ClassInitializationFeature.java:76) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:928) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:565) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:533) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:545) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:732) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:151) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:99) [INFO] [creator] Caused by: java.lang.NullPointerException: Cannot invoke "com.google.common.collect.ImmutableList.size()" because "list" is null [INFO] [creator] at com.google.common.collect.ImmutableList$Itr.<init>(ImmutableList.java:400) [INFO] [creator] at com.google.common.collect.ImmutableList.<clinit>(ImmutableList.java:393) [INFO] [creator] ... 18 more [INFO] [creator] Caused by: java.lang.NullPointerException: Cannot invoke "com.google.common.collect.ImmutableList.size()" because "list" is null [INFO] [creator] at com.google.common.collect.ImmutableList$Itr.<init>(ImmutableList.java:400) [INFO] [creator] at com.google.common.collect.ImmutableList.<clinit>(ImmutableList.java:393) [INFO] [creator] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method) [INFO] [creator] at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1166) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.ensureClassInitialized(ClassInitializationSupport.java:200) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.forceInitializeHosted(ClassInitializationSupport.java:346) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.initializeAtBuildTime(ClassInitializationSupport.java:266) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.initializeAtBuildTime(ClassInitializationSupport.java:276) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.processClassInitializationOption(ClassInitializationFeature.java:119) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.lambda$processClassInitializationOptions$0(ClassInitializationFeature.java:78) [INFO] [creator] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716) [INFO] [creator] at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:807) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.processClassInitializationOptions(ClassInitializationFeature.java:76) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:928) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:565) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:533) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:545) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:732) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:151) [INFO] [creator] at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:99) [INFO] [creator] -------------------------------------------------------------------------------- [INFO] [creator] 2.5s (9.8% of total time) in 25 GCs | Peak RSS: 0.54GB | CPU load: 2.41 [INFO] [creator] ================================================================================ [INFO] [creator] Failed generating 'com.example.demo.DemoApplication' after 21.2s. [INFO] [creator] unable to invoke layer creator [INFO] [creator] unable to contribute native-image layer [INFO] [creator] error running build [INFO] [creator] exit status 1 [INFO] [creator] ERROR: failed to build: exit status 1 [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:36 min [INFO] Finished at: 2025-08-02T07:02:03-07:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.5.4:build-image (default-cli) on project demo: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:3.5.4:build-image failed: Builder lifecycle 'creator' failed with status code 51 -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionExceptionSteps to reproduce?
The same NPE is occurring in the tests, https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory/actions/runs/16688947305/job/47243452706#step:6:6588
You can recreate locally by adding the postgres-socket-factory
dependency for any 1.25.x
version and trying to build a native image.
Fails
<dependency> <groupId>com.google.cloud.sql</groupId> <artifactId>postgres-socket-factory</artifactId> <version>1.25.2</version> </dependency>
Works
<dependency> <groupId>com.google.cloud.sql</groupId> <artifactId>postgres-socket-factory</artifactId> <version>1.24.2</version> </dependency>Environment
No response
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4