Skip to content

Commit 80e82cd

Browse files
committed
Do not close transactional Connection in doReleaseConnection
Closes gh-28133
1 parent 66ce8c9 commit 80e82cd

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

spring-r2dbc/src/main/java/org/springframework/r2dbc/connection/ConnectionFactoryUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ public static Mono<Void> doReleaseConnection(Connection connection, ConnectionFa
178178
if (conHolder != null && connectionEquals(conHolder, connection)) {
179179
// It's the transactional Connection: Don't close it.
180180
conHolder.released();
181+
return Mono.empty();
181182
}
182183
return Mono.from(connection.close());
183184
}).onErrorResume(NoTransactionException.class, ex -> Mono.from(connection.close()));

spring-r2dbc/src/test/java/org/springframework/r2dbc/connection/TransactionAwareConnectionFactoryProxyUnitTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,14 +146,15 @@ void shouldEmitBoundConnection() {
146146
ConnectionFactoryUtils.getConnection(connectionFactoryMock)
147147
.doOnNext(transactionalConnection::set).flatMap(connection -> proxyCf.create()
148148
.doOnNext(wrappedConnection -> assertThat(((Wrapped<?>) wrappedConnection).unwrap()).isSameAs(connection)))
149-
.as(rxtx::transactional)
150149
.flatMapMany(Connection::close)
150+
.as(rxtx::transactional)
151151
.as(StepVerifier::create)
152152
.verifyComplete();
153153

154+
verify(connectionFactoryMock, times(1)).create();
155+
verify(connectionMock1, times(1)).close();
154156
verifyNoInteractions(connectionMock2);
155157
verifyNoInteractions(connectionMock3);
156-
verify(connectionFactoryMock, times(1)).create();
157158
}
158159

159160
}

0 commit comments

Comments
 (0)