You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by gl...@apache.org on 2002/06/28 17:28:21 UTC
cvs commit: jakarta-commons/dbcp/src/java/org/apache/commons/dbcp DelegatingConnection.java DelegatingPreparedStatement.java DelegatingStatement.java PoolableConnection.java
glenn 2002/06/28 08:28:21
Modified: dbcp/src/java/org/apache/commons/dbcp
DelegatingConnection.java
DelegatingPreparedStatement.java
DelegatingStatement.java PoolableConnection.java
Log:
Fix a memory leak when tracing abandoned connections.
Cleanup of passivate and close methods.
Revision Changes Path
1.5 +16 -15 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingConnection.java
Index: DelegatingConnection.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingConnection.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DelegatingConnection.java 16 May 2002 21:25:37 -0000 1.4
+++ DelegatingConnection.java 28 Jun 2002 15:28:20 -0000 1.5
@@ -162,16 +162,6 @@
*/
public void close() throws SQLException
{
- // The JDBC spec requires that a Connection close any open
- // Statement's when it is closed.
- List statements = getTrace();
- if( statements != null) {
- Iterator it = statements.iterator();
- while(it.hasNext()) {
- ((ResultSet)it.next()).close();
- }
- clearTrace();
- }
passivate();
_conn.close();
}
@@ -256,8 +246,19 @@
}
}
- protected void passivate() {
+ protected void passivate() throws SQLException {
_closed = true;
+ // The JDBC spec requires that a Connection close any open
+ // Statement's when it is closed.
+ List statements = getTrace();
+ if( statements != null) {
+ Iterator it = statements.iterator();
+ while(it.hasNext()) {
+ ((Statement)it.next()).close();
+ }
+ clearTrace();
+ }
+ setLastUsed(0);
if(_conn instanceof DelegatingConnection) {
((DelegatingConnection)_conn).passivate();
}
1.4 +19 -20 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java
Index: DelegatingPreparedStatement.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingPreparedStatement.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DelegatingPreparedStatement.java 16 May 2002 21:25:37 -0000 1.3
+++ DelegatingPreparedStatement.java 28 Jun 2002 15:28:20 -0000 1.4
@@ -152,22 +152,6 @@
* any ResultSets that were not explicitly closed.
*/
public void close() throws SQLException {
- if(_conn != null) {
- _conn.removeTrace(this);
- _conn = null;
- }
-
- // The JDBC spec requires that a statment close any open
- // ResultSet's when it is closed.
- List resultSets = getTrace();
- if( resultSets != null) {
- Iterator it = resultSets.iterator();
- while(it.hasNext()) {
- ((ResultSet)it.next()).close();
- }
- clearTrace();
- }
-
passivate();
_stmt.close();
}
@@ -269,8 +253,23 @@
}
}
- protected void passivate() {
+ protected void passivate() throws SQLException {
_closed = true;
+ if(_conn != null) {
+ _conn.removeTrace(this);
+ _conn = null;
+ }
+
+ // The JDBC spec requires that a statment close any open
+ // ResultSet's when it is closed.
+ List resultSets = getTrace();
+ if( resultSets != null) {
+ Iterator it = resultSets.iterator();
+ while(it.hasNext()) {
+ ((ResultSet)it.next()).close();
+ }
+ clearTrace();
+ }
if(_stmt instanceof DelegatingPreparedStatement) {
((DelegatingPreparedStatement)_stmt).passivate();
}
1.4 +19 -20 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingStatement.java
Index: DelegatingStatement.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/DelegatingStatement.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DelegatingStatement.java 16 May 2002 21:25:38 -0000 1.3
+++ DelegatingStatement.java 28 Jun 2002 15:28:20 -0000 1.4
@@ -147,22 +147,6 @@
* any ResultSets that were not explicitly closed.
*/
public void close() throws SQLException {
- if (_conn != null) {
- _conn.removeTrace(this);
- _conn = null;
- }
-
- // The JDBC spec requires that a statment close any open
- // ResultSet's when it is closed.
- List resultSets = getTrace();
- if( resultSets != null) {
- Iterator it = resultSets.iterator();
- while(it.hasNext()) {
- ((ResultSet)it.next()).close();
- }
- clearTrace();
- }
-
passivate();
_stmt.close();
}
@@ -222,8 +206,23 @@
}
}
- protected void passivate() {
+ protected void passivate() throws SQLException {
_closed = true;
+ if (_conn != null) {
+ _conn.removeTrace(this);
+ _conn = null;
+ }
+
+ // The JDBC spec requires that a statment close any open
+ // ResultSet's when it is closed.
+ List resultSets = getTrace();
+ if( resultSets != null) {
+ Iterator it = resultSets.iterator();
+ while(it.hasNext()) {
+ ((ResultSet)it.next()).close();
+ }
+ clearTrace();
+ }
if(_stmt instanceof DelegatingPreparedStatement) {
((DelegatingPreparedStatement)_stmt).passivate();
}
1.4 +4 -5 jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/PoolableConnection.java
Index: PoolableConnection.java
===================================================================
RCS file: /home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/PoolableConnection.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PoolableConnection.java 16 May 2002 21:25:38 -0000 1.3
+++ PoolableConnection.java 28 Jun 2002 15:28:20 -0000 1.4
@@ -107,7 +107,6 @@
*/
public void close() throws SQLException {
try {
- setLastUsed(0);
_pool.returnObject(this);
} catch(SQLException e) {
throw e;
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>