-
Notifications
You must be signed in to change notification settings - Fork 121
Labels
priority: p1Important issue which blocks shipping the next release. Will be fixed prior to next release.Important issue which blocks shipping the next release. Will be fixed prior to next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.
Description
Bug Description
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 code (or command)
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/PluginExecutionException
Steps 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
- OS type and version: MacOS Sequoia
- Java SDK version: 24 and 21
- Cloud SQL Java Socket Factory version: 1.25.x
Additional Details
No response
Metadata
Metadata
Assignees
Labels
priority: p1Important issue which blocks shipping the next release. Will be fixed prior to next release.Important issue which blocks shipping the next release. Will be fixed prior to next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.