You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2006/07/12 00:30:39 UTC

svn commit: r421015 - /db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java

Author: djd
Date: Tue Jul 11 15:30:38 2006
New Revision: 421015

URL: http://svn.apache.org/viewvc?rev=421015&view=rev
Log:
DERBY-1142 Stop memory leak for embedded metadata queries. Mark the embedded ResultSet as having a single use
activation so that upon a close its activation.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java?rev=421015&r1=421014&r2=421015&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java Tue Jul 11 15:30:38 2006
@@ -218,7 +218,12 @@
 		if (SanityManager.DEBUG)
 		SanityManager.ASSERT(resultsToWrap!=null);
 		theResults = resultsToWrap;
-		this.forMetaData = forMetaData;
+		
+		// ResultSet's for metadata are single use, they are created
+		// with a PreparedStatement internally, but that statement is
+		// never returned to the application.
+		if (this.forMetaData = forMetaData)
+			singleUseActivation = resultsToWrap.getActivation();
         this.applicationStmt = this.stmt = owningStmt = stmt;
 
         this.timeoutMillis = stmt == null