Skip to content

Commit 134272d

Browse files
committed
TransactionAwareDataSourceProxy locally handles get/clearWarnings call
Closes gh-23346
1 parent 75a8050 commit 134272d

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

spring-jdbc/src/main/java/org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2017 the original author or authors.
2+
* Copyright 2002-2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -124,7 +124,7 @@ public Connection getConnection() throws SQLException {
124124
/**
125125
* Wraps the given Connection with a proxy that delegates every method call to it
126126
* but delegates {@code close()} calls to DataSourceUtils.
127-
* @param targetDataSource DataSource that the Connection came from
127+
* @param targetDataSource the DataSource that the Connection came from
128128
* @return the wrapped Connection
129129
* @see java.sql.Connection#close()
130130
* @see DataSourceUtils#doReleaseConnection
@@ -203,6 +203,10 @@ else if (method.getName().equals("isWrapperFor")) {
203203
return true;
204204
}
205205
}
206+
else if (method.getName().equals("getWarnings") || method.getName().equals("clearWarnings")) {
207+
// Avoid creation of target Connection on pre-close cleanup (e.g. in Hibernate Session)
208+
return null;
209+
}
206210
else if (method.getName().equals("close")) {
207211
// Handle close method: only close if not within a transaction.
208212
DataSourceUtils.doReleaseConnection(this.target, this.targetDataSource);

0 commit comments

Comments
 (0)