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/20 01:15:15 UTC
svn commit: r1691861 - in /commons/proper/dbcp/trunk/src: changes/
main/java/org/apache/commons/dbcp2/
test/java/org/apache/commons/dbcp2/managed/
Author: psteitz
Date: Sun Jul 19 23:15:15 2015
New Revision: 1691861
URL: http://svn.apache.org/r1691861
Log:
Added null check to DelegatingConnection#closeInternal. Prior to this change, NPEs were being generated by ManagedConnection#close.
JIRA: DBCP-438
Modified:
commons/proper/dbcp/trunk/src/changes/changes.xml
commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/DelegatingConnection.java
commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java
commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSourceInTx.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=1691861&r1=1691860&r2=1691861&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/changes/changes.xml (original)
+++ commons/proper/dbcp/trunk/src/changes/changes.xml Sun Jul 19 23:15:15 2015
@@ -61,6 +61,9 @@ The <action> type attribute can be add,u
<body>
<release version="2.1.1" date="TBD" description="Bug fixes.">
+ <action issue="DBCP-438" dev="psteitz" type="fix" due-to="Raihan Kibria">
+ Nested connections in a transaction (local) throws null pointer.
+ </action>
<action issue="DBCP-437" dev="psteitz" type="fix">
BasicDataSource does not set disconnectionSql properties on its PoolableConnectionFactory.
</action>
Modified: commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/DelegatingConnection.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/DelegatingConnection.java?rev=1691861&r1=1691860&r2=1691861&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/DelegatingConnection.java (original)
+++ commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/DelegatingConnection.java Sun Jul 19 23:15:15 2015
@@ -231,9 +231,13 @@ public class DelegatingConnection<C exte
try {
passivate();
} finally {
- try {
- _conn.close();
- } finally {
+ if (_conn != null) {
+ try {
+ _conn.close();
+ } finally {
+ _closed = true;
+ }
+ } else {
_closed = true;
}
}
Modified: commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java?rev=1691861&r1=1691860&r2=1691861&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSource.java Sun Jul 19 23:15:15 2015
@@ -242,4 +242,20 @@ public class TestManagedDataSource exten
assertTrue(con2.innermostDelegateEquals(inner));
assertFalse(con.equals(con2));
}
+
+ @Test
+ public void testNestedConnections() throws Exception {
+ transactionManager.begin();
+
+ Connection c1 = null;
+ Connection c2 = null;
+
+ c1 = newConnection();
+ c2 = newConnection();
+
+ transactionManager.commit();
+
+ c1.close();
+ c2.close();
+ }
}
Modified: commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSourceInTx.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSourceInTx.java?rev=1691861&r1=1691860&r2=1691861&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSourceInTx.java (original)
+++ commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/managed/TestManagedDataSourceInTx.java Sun Jul 19 23:15:15 2015
@@ -70,6 +70,12 @@ public class TestManagedDataSourceInTx e
// two connections to the same datasource are supposed to share
// a single connection
}
+
+ @Override
+ @Test
+ public void testNestedConnections() {
+ // Not supported
+ }
@Override
@Test