Jacques, please see inline:
On Jan 10, 2013, at 6:32 AM, [email protected] wrote: > Author: jleroux > Date: Thu Jan 10 05:32:48 2013 > New Revision: 1431191 > > URL: http://svn.apache.org/viewvc?rev=1431191&view=rev > Log: > In "Memory leak due to transaction management using DBCP and MySQL" > https://issues.apache.org/jira/browse/OFBIZ-5122 Jose Manuel Vivó Arnal > reported that I missed to apply the patch from OFBIZ-2599, just handled the > DBPC part, and Philippe Mouawad did not notice. > > OK, so it was just a matter of replacing > PoolableConnectionFactory factory = new PoolableConnectionFactory(xacf, pool, > null, null, true, true); > by > PoolableManagedConnectionFactory factory = new > PoolableManagedConnectionFactory(xacf, pool, null, null, true, true); This is minor but it would be better to write: PoolableConnectionFactory factory = new PoolableManagedConnectionFactory(xacf, pool, null, null, true, true); > > The rest are only imports cleaning. > > Too bad we did not notice that for 3.5 years. It seems it does not affect > servers with plenty of memory, or updated often enough. But I recommend to > upgrade of course... Are we sure we can backport this fix to all the release branches as you did? From the history of comments in OFBIZ-2599 I see that there are some prerequisites for the version of DBCP: did you check if they are satisfied by the jars in 10.04 and 11.04? Regards, Jacopo > > Modified: > > ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java > > Modified: > ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java?rev=1431191&r1=1431190&r2=1431191&view=diff > ============================================================================== > --- > ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java > (original) > +++ > ofbiz/trunk/framework/entity/src/org/ofbiz/entity/connection/DBCPConnectionFactory.java > Thu Jan 10 05:32:48 2013 > @@ -18,11 +18,22 @@ > > *******************************************************************************/ > package org.ofbiz.entity.connection; > > +import java.sql.Connection; > +import java.sql.Driver; > +import java.sql.SQLException; > +import java.util.HashMap; > +import java.util.Map; > +import java.util.Properties; > + > +import javax.transaction.TransactionManager; > + > +import javolution.util.FastMap; > + > import org.apache.commons.dbcp.ConnectionFactory; > import org.apache.commons.dbcp.DriverConnectionFactory; > -import org.apache.commons.dbcp.PoolableConnectionFactory; > import org.apache.commons.dbcp.managed.LocalXAConnectionFactory; > import org.apache.commons.dbcp.managed.ManagedDataSource; > +import org.apache.commons.dbcp.managed.PoolableManagedConnectionFactory; > import org.apache.commons.dbcp.managed.XAConnectionFactory; > import org.apache.commons.pool.impl.GenericObjectPool; > import org.ofbiz.base.util.Debug; > @@ -32,16 +43,6 @@ import org.ofbiz.entity.datasource.Gener > import org.ofbiz.entity.transaction.TransactionFactory; > import org.w3c.dom.Element; > > -import javax.transaction.TransactionManager; > -import java.sql.Connection; > -import java.sql.Driver; > -import java.sql.SQLException; > -import java.util.HashMap; > -import java.util.Map; > -import java.util.Properties; > - > -import javolution.util.FastMap; > - > /** > * DBCPConnectionFactory > */ > @@ -146,7 +147,7 @@ public class DBCPConnectionFactory imple > > > // create the pool object factory > - PoolableConnectionFactory factory = new > PoolableConnectionFactory(xacf, pool, null, null, true, true); > + PoolableManagedConnectionFactory factory = new > PoolableManagedConnectionFactory(xacf, pool, null, null, true, true); > factory.setValidationQuery("select 1 from entity_key_store where > key_name = ''"); > factory.setDefaultReadOnly(false); > > >
