diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulatorUtils.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulatorUtils.java index d8a10c4a..f7d1f197 100644 --- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulatorUtils.java +++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulatorUtils.java @@ -49,6 +49,7 @@ public abstract class DatabasePopulatorUtils { return Mono.usingWhen(ConnectionFactoryUtils.getConnection(connectionFactory), // populator::populate, // it -> ConnectionFactoryUtils.releaseConnection(it, connectionFactory), // + (it, err) -> ConnectionFactoryUtils.releaseConnection(it, connectionFactory), it -> ConnectionFactoryUtils.releaseConnection(it, connectionFactory)) .onErrorMap(ex -> !(ex instanceof ScriptException), ex -> { return new UncategorizedScriptException("Failed to execute database script", ex); diff --git a/src/main/java/org/springframework/data/r2dbc/core/DefaultDatabaseClient.java b/src/main/java/org/springframework/data/r2dbc/core/DefaultDatabaseClient.java index 2b2ccb6e..e59c23b0 100644 --- a/src/main/java/org/springframework/data/r2dbc/core/DefaultDatabaseClient.java +++ b/src/main/java/org/springframework/data/r2dbc/core/DefaultDatabaseClient.java @@ -157,7 +157,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { Connection connectionToUse = createConnectionProxy(it.connection); return doInConnection(connectionToUse, action); - }, ConnectionCloseHolder::close, ConnectionCloseHolder::close, ConnectionCloseHolder::close) // + }, ConnectionCloseHolder::close, (it, err) -> it.close(), ConnectionCloseHolder::close) // .onErrorMap(R2dbcException.class, ex -> translateException("execute", getSql(action), ex)); } @@ -185,7 +185,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { Connection connectionToUse = createConnectionProxy(it.connection); return doInConnectionMany(connectionToUse, action); - }, ConnectionCloseHolder::close, ConnectionCloseHolder::close, ConnectionCloseHolder::close) // + }, ConnectionCloseHolder::close, (it, err) -> it.close(), ConnectionCloseHolder::close) // .onErrorMap(R2dbcException.class, ex -> translateException("executeMany", getSql(action), ex)); }