Merge branch '2.5.x'

Closes gh-26943
This commit is contained in:
Andy Wilkinson
2021-06-17 11:43:15 +01:00
2 changed files with 20 additions and 1 deletions

View File

@@ -21,6 +21,9 @@ import java.util.List;
import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.jdbc.EmbeddedDatabaseConnection;
import org.springframework.boot.sql.init.AbstractScriptDatabaseInitializer;
@@ -38,6 +41,8 @@ import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
*/
public class DataSourceScriptDatabaseInitializer extends AbstractScriptDatabaseInitializer {
private static final Log logger = LogFactory.getLog(DataSourceScriptDatabaseInitializer.class);
private final DataSource dataSource;
/**
@@ -61,7 +66,13 @@ public class DataSourceScriptDatabaseInitializer extends AbstractScriptDatabaseI
@Override
protected boolean isEmbeddedDatabase() {
return EmbeddedDatabaseConnection.isEmbedded(this.dataSource);
try {
return EmbeddedDatabaseConnection.isEmbedded(this.dataSource);
}
catch (Exception ex) {
logger.debug("Could not determine if datasource is embedded", ex);
return false;
}
}
@Override

View File

@@ -22,6 +22,7 @@ import javax.sql.DataSource;
import com.zaxxer.hikari.HikariDataSource;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.boot.sql.init.AbstractScriptDatabaseInitializerTests;
@@ -53,6 +54,13 @@ class DataSourceScriptDatabaseInitializerTests
this.standloneDataSource.close();
}
@Test
void whenDatabaseIsInaccessibleThenItIsAssumedNotToBeEmbedded() {
DataSourceScriptDatabaseInitializer initializer = new DataSourceScriptDatabaseInitializer(
new HikariDataSource(), new DatabaseInitializationSettings());
assertThat(initializer.isEmbeddedDatabase()).isFalse();
}
@Override
protected DataSourceScriptDatabaseInitializer createEmbeddedDatabaseInitializer(
DatabaseInitializationSettings settings) {