Fix connection leak by releasing the obtained connection properly #120
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes a connection leak that happens when checking the driver version in order to determine if JDBC 4.2 APIs should be used or not by the Hibernate integrators.
The connection was obtained through
obtainConnection()
, but was not properly released, as invokingclose()
doesn't actually make the connection available in the connection pool. CallingreleaseConnection()
on the other side follows the correct process for releasing the resources and this way the connection pool stays balanced and there are no leaks. The closing of the connection is then handled by Hibernate.A workaround for the existing connection leak is providing the
jadira.usertype.useJdbc42Apis
system property. Either value (true
orfalse
) will make the above check unnecessary and a connection will not be obtained.