Skip to content

Commit fae930c

Browse files
committed
fix for Can't connect to a local h2 database created without username #23538
1 parent d0c6dbc commit fae930c

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceProperties.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -322,13 +322,12 @@ public void setUsername(String username) {
322322
* @since 1.4.0
323323
*/
324324
public String determineUsername() {
325-
if (StringUtils.hasText(this.username)) {
326-
return this.username;
327-
}
328-
if (EmbeddedDatabaseConnection.isEmbedded(determineDriverClassName())) {
325+
if (EmbeddedDatabaseConnection.isEmbedded(determineDriverClassName()) && !StringUtils.hasText(determineUrl())) {
329326
return "sa";
330327
}
331-
return null;
328+
else {
329+
return this.username;
330+
}
332331
}
333332

334333
/**
@@ -350,13 +349,12 @@ public void setPassword(String password) {
350349
* @since 1.4.0
351350
*/
352351
public String determinePassword() {
353-
if (StringUtils.hasText(this.password)) {
354-
return this.password;
355-
}
356-
if (EmbeddedDatabaseConnection.isEmbedded(determineDriverClassName())) {
352+
if (EmbeddedDatabaseConnection.isEmbedded(determineDriverClassName()) && !StringUtils.hasText(determineUrl())) {
357353
return "";
358354
}
359-
return null;
355+
else {
356+
return this.password;
357+
}
360358
}
361359

362360
public String getJndiName() {

spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/jdbc/TestDatabaseAutoConfiguration.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ private static class EmbeddedDataSourceBeanFactoryPostProcessor implements BeanD
8080
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
8181
Assert.isInstanceOf(ConfigurableListableBeanFactory.class, registry,
8282
"Test Database Auto-configuration can only be used with a ConfigurableListableBeanFactory");
83-
process(registry, (ConfigurableListableBeanFactory) registry);
8483
}
8584

8685
@Override

0 commit comments

Comments
 (0)