You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2015/07/26 03:23:38 UTC
svn commit: r1692677 - in /commons/proper/dbcp/trunk/src: changes/changes.xml
main/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java
test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java
Author: psteitz
Date: Sun Jul 26 01:23:38 2015
New Revision: 1692677
URL: http://svn.apache.org/r1692677
Log:
Fixed logical connection leak in KeyedCPDSConnectionFactory.
JIRA: DBCP-442
Modified:
commons/proper/dbcp/trunk/src/changes/changes.xml
commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java
commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java
Modified: commons/proper/dbcp/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/changes/changes.xml?rev=1692677&r1=1692676&r2=1692677&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/changes/changes.xml (original)
+++ commons/proper/dbcp/trunk/src/changes/changes.xml Sun Jul 26 01:23:38 2015
@@ -61,6 +61,10 @@ The <action> type attribute can be add,u
<body>
<release version="2.1.1" date="TBD" description="Bug fixes.">
+ <action issue="DBCP-442" dev="psteitz" type="fix">
+ SharedPoolDataSource getConnection fails when testOnBorrow is set with
+ a null validation query.
+ </action>
<action issue="DBCP-438" dev="psteitz" type="fix" due-to="Raihan Kibria">
Nested connections in a transaction (local) throws null pointer.
</action>
Modified: commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java?rev=1692677&r1=1692676&r2=1692677&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java (original)
+++ commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java Sun Jul 26 01:23:38 2015
@@ -172,18 +172,23 @@ class KeyedCPDSConnectionFactory
}
boolean valid = false;
PooledConnection pconn = p.getObject().getPooledConnection();
+ Connection conn = null;
+ validatingSet.add(pconn);
if (null == _validationQuery) {
int timeout = _validationQueryTimeout;
if (timeout < 0) {
timeout = 0;
}
try {
- valid = pconn.getConnection().isValid(timeout);
+ conn = pconn.getConnection();
+ valid = conn.isValid(timeout);
} catch (SQLException e) {
valid = false;
+ } finally {
+ Utils.closeQuietly(conn);
+ validatingSet.remove(pconn);
}
} else {
- Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
// logical Connection from the PooledConnection must be closed
Modified: commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java?rev=1692677&r1=1692676&r2=1692677&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java (original)
+++ commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/cpdsadapter/TestDriverAdapterCPDS.java Sun Jul 26 01:23:38 2015
@@ -162,6 +162,19 @@ public class TestDriverAdapterCPDS {
pcds.getPooledConnection("foo", "bar").close();
assertEquals("bar", pcds.getConnectionProperties().getProperty("password"));
}
+
+ /**
+ * JIRA: DBCP-442
+ */
+ @Test
+ public void testNullValidationQuery() throws Exception {
+ final SharedPoolDataSource spds = new SharedPoolDataSource();
+ spds.setConnectionPoolDataSource(pcds);
+ spds.setDefaultTestOnBorrow(true);
+ final Connection c = spds.getConnection();
+ c.close();
+ spds.close();
+ }
// https://issues.apache.org/jira/browse/DBCP-376
@Test