Return-Path: Delivered-To: apmail-db-ojb-dev-archive@www.apache.org Received: (qmail 31739 invoked from network); 15 May 2007 22:59:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 May 2007 22:59:43 -0000 Received: (qmail 76413 invoked by uid 500); 15 May 2007 22:59:50 -0000 Delivered-To: apmail-db-ojb-dev-archive@db.apache.org Received: (qmail 76294 invoked by uid 500); 15 May 2007 22:59:50 -0000 Mailing-List: contact ojb-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "OJB Developers List" Reply-To: "OJB Developers List" Delivered-To: mailing list ojb-dev@db.apache.org Received: (qmail 76281 invoked by uid 500); 15 May 2007 22:59:50 -0000 Received: (qmail 76278 invoked by uid 99); 15 May 2007 22:59:50 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 May 2007 15:59:50 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 May 2007 15:59:43 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 15D081A9838; Tue, 15 May 2007 15:59:23 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r538361 - /db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java Date: Tue, 15 May 2007 22:59:22 -0000 To: ojb-commits@db.apache.org From: arminw@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070515225923.15D081A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: arminw Date: Tue May 15 15:59:22 2007 New Revision: 538361 URL: http://svn.apache.org/viewvc?view=rev&rev=538361 Log: fix memory leak Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java?view=diff&rev=538361&r1=538360&r2=538361 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java Tue May 15 15:59:22 2007 @@ -18,6 +18,7 @@ import java.util.Collection; import java.util.Enumeration; import java.util.Map; +import java.lang.ref.WeakReference; import org.apache.commons.collections.map.ReferenceIdentityMap; import org.apache.ojb.broker.metadata.ClassDescriptor; @@ -620,10 +621,15 @@ */ public static class SqlForClass { + /* + TODO: Currently we have to take care of references to metadata classes. These classes + may be set free, so it's not allowed to use hard references to metadata class instances, because + the object with the reference may be cached. Rework this in next major version. + */ private SqlStatement deleteSql; private SqlStatement insertSql; private SqlStatement updateSql; - private SelectStatement selectByPKSql; + private WeakReference selectByPKSql; private SqlStatement selectExists; public SqlStatement getDeleteSql() @@ -658,12 +664,12 @@ public SelectStatement getSelectByPKSql() { - return selectByPKSql; + return selectByPKSql != null ? (SelectStatement) selectByPKSql.get() : null; } public void setSelectByPKSql(SelectStatement selectByPKSql) { - this.selectByPKSql = selectByPKSql; + this.selectByPKSql = new WeakReference(selectByPKSql); } public SqlStatement getSelectExists() --------------------------------------------------------------------- To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org For additional commands, e-mail: ojb-dev-help@db.apache.org