Skip to content

Commit 379e919

Browse files
committed
TransactionAwareDataSourceProxy locally handles get/clearWarnings call
Closes gh-23346
1 parent 87152d7 commit 379e919

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.
@@ -130,7 +130,7 @@ public Connection getConnection() throws SQLException {
130130
/**
131131
* Wraps the given Connection with a proxy that delegates every method call to it
132132
* but delegates {@code close()} calls to DataSourceUtils.
133-
* @param targetDataSource DataSource that the Connection came from
133+
* @param targetDataSource the DataSource that the Connection came from
134134
* @return the wrapped Connection
135135
* @see java.sql.Connection#close()
136136
* @see DataSourceUtils#doReleaseConnection
@@ -207,6 +207,10 @@ else if (method.getName().equals("isWrapperFor")) {
207207
return true;
208208
}
209209
}
210+
else if (method.getName().equals("getWarnings") || method.getName().equals("clearWarnings")) {
211+
// Avoid creation of target Connection on pre-close cleanup (e.g. in Hibernate Session)
212+
return null;
213+
}
210214
else if (method.getName().equals("close")) {
211215
// Handle close method: only close if not within a transaction.
212216
DataSourceUtils.doReleaseConnection(this.target, this.targetDataSource);

0 commit comments

Comments
 (0)