You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2007/05/16 00:59:22 UTC
svn commit: r538361 -
/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/accesslayer/sql/SqlGeneratorDefaultImpl.java
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