diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariJdbcConnectionDetailsBeanPostProcessor.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariJdbcConnectionDetailsBeanPostProcessor.java index ca4b1b18f6a..2179f0ba97b 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariJdbcConnectionDetailsBeanPostProcessor.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/HikariJdbcConnectionDetailsBeanPostProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -39,7 +39,10 @@ class HikariJdbcConnectionDetailsBeanPostProcessor extends JdbcConnectionDetails dataSource.setJdbcUrl(connectionDetails.getJdbcUrl()); dataSource.setUsername(connectionDetails.getUsername()); dataSource.setPassword(connectionDetails.getPassword()); - dataSource.setDriverClassName(connectionDetails.getDriverClassName()); + String driverClassName = connectionDetails.getDriverClassName(); + if (driverClassName != null) { + dataSource.setDriverClassName(connectionDetails.getDriverClassName()); + } return dataSource; } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariJdbcConnectionDetailsBeanPostProcessorTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariJdbcConnectionDetailsBeanPostProcessorTests.java index 3172a1b5bbf..5bd84e10cad 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariJdbcConnectionDetailsBeanPostProcessorTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/HikariJdbcConnectionDetailsBeanPostProcessorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.jdbc.DatabaseDriver; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; /** * Tests for {@link HikariJdbcConnectionDetailsBeanPostProcessor}. @@ -47,4 +48,13 @@ class HikariJdbcConnectionDetailsBeanPostProcessorTests { assertThat(dataSource.getDriverClassName()).isEqualTo(DatabaseDriver.POSTGRESQL.getDriverClassName()); } + @Test + void toleratesConnectionDetailsWithNullDriverClassName() { + HikariDataSource dataSource = new HikariDataSource(); + dataSource.setDriverClassName(DatabaseDriver.H2.getDriverClassName()); + JdbcConnectionDetails connectionDetails = mock(JdbcConnectionDetails.class); + new HikariJdbcConnectionDetailsBeanPostProcessor(null).processDataSource(dataSource, connectionDetails); + assertThat(dataSource.getDriverClassName()).isEqualTo(DatabaseDriver.H2.getDriverClassName()); + } + }