You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2013/01/10 22:55:37 UTC
svn commit: r1431684 - in /commons/proper/dbcp/trunk/src:
java/org/apache/commons/dbcp2/ java/org/apache/commons/dbcp2/managed/
test/org/apache/commons/dbcp2/
Author: markt
Date: Thu Jan 10 21:55:36 2013
New Revision: 1431684
URL: http://svn.apache.org/viewvc?rev=1431684&view=rev
Log:
Apply Phil's patch from POOL-229 (with a few tweaks) to switch to Pool2's abandoned object pool support.
Removed:
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/AbandonedConfig.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/AbandonedObjectPool.java
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestAbandonedObjectPool.java
Modified:
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/AbandonedTrace.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSourceFactory.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/DelegatingConnection.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnection.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnection.java
commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java
commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestBasicDataSourceFactory.java
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/AbandonedTrace.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/AbandonedTrace.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/AbandonedTrace.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/AbandonedTrace.java Thu Jan 10 21:55:36 2013
@@ -14,15 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.commons.dbcp2;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
import java.util.List;
+import org.apache.commons.pool2.impl.TrackedUse;
+
/**
* Tracks db connection usage for recovering and reporting
* abandoned db connections.
@@ -33,12 +31,8 @@ import java.util.List;
* @author Glenn L. Nielsen
* @version $Revision$ $Date$
*/
-public class AbandonedTrace {
+public class AbandonedTrace implements TrackedUse {
- /** DBCP AbandonedConfig */
- private final AbandonedConfig config;
- /** A stack trace of the code that created me (if in debug mode) */
- private volatile Exception createdBy;
/** A list of objects created by children of this object */
private final List<AbandonedTrace> traceList =
new ArrayList<AbandonedTrace>();
@@ -50,17 +44,6 @@ public class AbandonedTrace {
* without doing abandoned tracing.
*/
public AbandonedTrace() {
- this.config = null;
- init(null);
- }
-
- /**
- * Construct a new AbandonedTrace with no parent object.
- *
- * @param config AbandonedConfig
- */
- public AbandonedTrace(AbandonedConfig config) {
- this.config = config;
init(null);
}
@@ -70,7 +53,6 @@ public class AbandonedTrace {
* @param parent AbandonedTrace parent object
*/
public AbandonedTrace(AbandonedTrace parent) {
- this.config = parent.getConfig();
init(parent);
}
@@ -83,22 +65,6 @@ public class AbandonedTrace {
if (parent != null) {
parent.addTrace(this);
}
-
- if (config == null) {
- return;
- }
- if (config.getLogAbandoned()) {
- createdBy = new AbandonedObjectException();
- }
- }
-
- /**
- * Get the abandoned config for this object.
- *
- * @return AbandonedConfig for this object
- */
- protected AbandonedConfig getConfig() {
- return config;
}
/**
@@ -106,7 +72,8 @@ public class AbandonedTrace {
*
* @return long time in ms
*/
- protected long getLastUsed() {
+ @Override
+ public long getLastUsed() {
return lastUsed;
}
@@ -128,20 +95,6 @@ public class AbandonedTrace {
}
/**
- * If logAbandoned=true generate a stack trace
- * for this object then add this object to the parent
- * object trace list.
- */
- protected void setStackTrace() {
- if (config == null) {
- return;
- }
- if (config.getLogAbandoned()) {
- createdBy = new AbandonedObjectException();
- }
- }
-
- /**
* Add an object to the list of objects being
* traced.
*
@@ -176,23 +129,6 @@ public class AbandonedTrace {
}
/**
- * Prints a stack trace of the code that
- * created this object.
- */
- public void printStackTrace() {
- if (createdBy != null && config != null) {
- createdBy.printStackTrace(config.getLogWriter());
- }
- synchronized(this.traceList) {
- Iterator<AbandonedTrace> it = this.traceList.iterator();
- while (it.hasNext()) {
- AbandonedTrace at = it.next();
- at.printStackTrace();
- }
- }
- }
-
- /**
* Remove a child object this object is tracing.
*
* @param trace AbandonedTrace object to remove
@@ -202,32 +138,4 @@ public class AbandonedTrace {
this.traceList.remove(trace);
}
}
-
- static class AbandonedObjectException extends Exception {
-
- private static final long serialVersionUID = 7398692158058772916L;
-
- /** Date format */
- //@GuardedBy("this")
- private static final SimpleDateFormat format = new SimpleDateFormat
- ("'DBCP object created' yyyy-MM-dd HH:mm:ss " +
- "'by the following code was never closed:'");
-
- private final long _createdTime;
-
- public AbandonedObjectException() {
- _createdTime = System.currentTimeMillis();
- }
-
- // Override getMessage to avoid creating objects and formatting
- // dates unless the log message will actually be used.
- @Override
- public String getMessage() {
- String msg;
- synchronized(format) {
- msg = format.format(new Date(_createdTime));
- }
- return msg;
- }
- }
}
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java Thu Jan 10 21:55:36 2013
@@ -33,6 +33,7 @@ import java.sql.SQLFeatureNotSupportedEx
import javax.sql.DataSource;
+import org.apache.commons.pool2.impl.AbandonedConfig;
import org.apache.commons.pool2.impl.GenericKeyedObjectPoolConfig;
import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
@@ -1263,7 +1264,7 @@ public class BasicDataSource implements
/**
* <p>Flag to remove abandoned connections if they exceed the
- * removeAbandonedTimout.</p>
+ * removeAbandonedTimeout when borrowObject is invoked.</p>
*
* <p>The default value is false.<p>
*
@@ -1273,39 +1274,90 @@ public class BasicDataSource implements
*
* <p>Abandoned connections are identified and removed when
* {@link #getConnection()} is invoked and the following conditions hold
- * <ul><li>{@link #getRemoveAbandoned()} = true </li>
+ * <ul><li>{@link #getRemoveAbandonedOnBorrow()} or
+ * {@link #getRemoveAbandonedOnMaintenance()} = true</li>
* <li>{@link #getNumActive()} > {@link #getMaxTotal()} - 3 </li>
* <li>{@link #getNumIdle()} < 2 </li></ul></p>
*
* @see #getRemoveAbandonedTimeout()
*/
- public boolean getRemoveAbandoned() {
+ public boolean getRemoveAbandonedOnBorrow() {
if (abandonedConfig != null) {
- return abandonedConfig.getRemoveAbandoned();
+ return abandonedConfig.getRemoveAbandonedOnBorrow();
}
return false;
}
/**
* <p>Flag to remove abandoned connections if they exceed the
- * removeAbandonedTimeout.</p>
+ * removeAbandonedTimeout when borrowObject is invoked.</p>
*
* <p>If set to true a connection is considered abandoned and eligible
* for removal if it has been idle longer than the
- * {@link #getRemoveAbandoned() removeAbandonedTimeout}.</p>
+ * {@link #getRemoveAbandonedTimeout() removeAbandonedTimeout}.</p>
*
* <p>Setting this to true can recover db connections from poorly written
* applications which fail to close a connection.</p>
*
- * @param removeAbandoned true means abandoned connections will be
- * removed
- * @see #getRemoveAbandoned()
+ * @param removeAbandonedOnMaintenance true means abandoned connections will
+ * be removed when borrowObject is
+ * invoked
*/
- public void setRemoveAbandoned(boolean removeAbandoned) {
+ public void setRemoveAbandonedOnMaintenance(
+ boolean removeAbandonedOnMaintenance) {
if (abandonedConfig == null) {
abandonedConfig = new AbandonedConfig();
}
- abandonedConfig.setRemoveAbandoned(removeAbandoned);
+ abandonedConfig.setRemoveAbandonedOnMaintenance(
+ removeAbandonedOnMaintenance);
+ this.restartNeeded = true;
+ }
+
+ /**
+ * <p>Flag to remove abandoned connections if they exceed the
+ * removeAbandonedTimeout during pool maintenance.</p>
+ *
+ * <p>The default value is false.<p>
+ *
+ * <p>If set to true a connection is considered abandoned and eligible
+ * for removal if it has not been used for more than
+ * {@link #getRemoveAbandonedTimeout() removeAbandonedTimeout} seconds.</p>
+ *
+ * <p>Abandoned connections are identified and removed when
+ * {@link #getConnection()} is invoked and the following conditions hold
+ * <ul><li>{@link #getRemoveAbandonedOnBorrow()} or
+ * {@link #getRemoveAbandonedOnMaintenance()} = true</li>
+ * <li>{@link #getNumActive()} > {@link #getMaxTotal()} - 3 </li>
+ * <li>{@link #getNumIdle()} < 2 </li></ul></p>
+ *
+ * @see #getRemoveAbandonedTimeout()
+ */
+ public boolean getRemoveAbandonedOnMaintenance() {
+ if (abandonedConfig != null) {
+ return abandonedConfig.getRemoveAbandonedOnMaintenance();
+ }
+ return false;
+ }
+
+ /**
+ * <p>Flag to remove abandoned connections if they exceed the
+ * removeAbandonedTimeout during pool maintenance.</p>
+ *
+ * <p>If set to true a connection is considered abandoned and eligible
+ * for removal if it has been idle longer than the
+ * {@link #getRemoveAbandonedTimeout() removeAbandonedTimeout}.</p>
+ *
+ * <p>Setting this to true can recover db connections from poorly written
+ * applications which fail to close a connection.</p>
+ *
+ * @param removeAbandonedOnBorrow true means abandoned connections will be
+ * removed during pool maintenance
+ */
+ public void setRemoveAbandonedOnBorrow(boolean removeAbandonedOnBorrow) {
+ if (abandonedConfig == null) {
+ abandonedConfig = new AbandonedConfig();
+ }
+ abandonedConfig.setRemoveAbandonedOnBorrow(removeAbandonedOnBorrow);
this.restartNeeded = true;
}
@@ -1318,7 +1370,8 @@ public class BasicDataSource implements
*
* <p>Abandoned connection cleanup happens when
* <code><ul>
- * <li><code>{@link #getRemoveAbandoned() removeAbandoned} == true</li>
+ * <li>{@link #getRemoveAbandonedOnBorrow()} or
+ * {@link #getRemoveAbandonedOnMaintenance()} = true</li>
* <li>{@link #getNumIdle() numIdle} < 2</li>
* <li>{@link #getNumActive() numActive} > {@link #getMaxTotal() maxActive} - 3</li>
* </ul></code></p>
@@ -1337,11 +1390,13 @@ public class BasicDataSource implements
* removed.</p>
*
* <p>Setting this property has no effect if
- * {@link #getRemoveAbandoned() removeAbandoned} is false.</p>
+ * {@link #getRemoveAbandonedOnBorrow()} and
+ * {@link #getRemoveAbandonedOnMaintenance()} are false.</p>
*
* @param removeAbandonedTimeout new abandoned timeout in seconds
* @see #getRemoveAbandonedTimeout()
- * @see #getRemoveAbandoned()
+ * @see #getRemoveAbandonedOnBorrow()
+ * @see #getRemoveAbandonedOnMaintenance()
*/
public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) {
if (abandonedConfig == null) {
@@ -1534,8 +1589,7 @@ public class BasicDataSource implements
PoolableConnectionFactory poolableConnectionFactory;
try {
poolableConnectionFactory = createPoolableConnectionFactory(
- driverConnectionFactory,
- abandonedConfig);
+ driverConnectionFactory);
poolableConnectionFactory.setPoolStatements(
poolPreparedStatements);
poolableConnectionFactory.setMaxOpenPrepatedStatements(
@@ -1691,8 +1745,11 @@ public class BasicDataSource implements
protected void createConnectionPool(PoolableConnectionFactory factory) {
// Create an object pool to contain our active connections
GenericObjectPool gop;
- if ((abandonedConfig != null) && (abandonedConfig.getRemoveAbandoned())) {
- gop = new AbandonedObjectPool(factory,abandonedConfig);
+ if (abandonedConfig != null &&
+ (abandonedConfig.getRemoveAbandonedOnBorrow() ||
+ abandonedConfig.getRemoveAbandonedOnMaintenance())) {
+ gop = new GenericObjectPool(factory, new GenericObjectPoolConfig(),
+ abandonedConfig);
}
else {
gop = new GenericObjectPool(factory);
@@ -1754,12 +1811,10 @@ public class BasicDataSource implements
* so subclasses can replace the default implementation.
*
* @param driverConnectionFactory JDBC connection factory
- * @param configuration abandoned connection tracking configuration (null if no tracking)
* @throws SQLException if an error occurs creating the PoolableConnectionFactory
*/
protected PoolableConnectionFactory createPoolableConnectionFactory(
- ConnectionFactory driverConnectionFactory,
- AbandonedConfig configuration) throws SQLException {
+ ConnectionFactory driverConnectionFactory) throws SQLException {
PoolableConnectionFactory connectionFactory = null;
try {
connectionFactory =
@@ -1773,7 +1828,6 @@ public class BasicDataSource implements
connectionFactory.setDefaultAutoCommit(defaultAutoCommit);
connectionFactory.setDefaultTransactionIsolation(defaultTransactionIsolation);
connectionFactory.setDefaultCatalog(defaultCatalog);
- connectionFactory.setAbandonedConfig(configuration);
connectionFactory.setCacheState(cacheState);
connectionFactory.setPoolStatements(poolPreparedStatements);
connectionFactory.setMaxOpenPrepatedStatements(
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSourceFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSourceFactory.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSourceFactory.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSourceFactory.java Thu Jan 10 21:55:36 2013
@@ -77,7 +77,8 @@ public class BasicDataSourceFactory impl
*/
private final static String PROP_CONNECTIONINITSQLS = "connectionInitSqls";
private final static String PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED = "accessToUnderlyingConnectionAllowed";
- private final static String PROP_REMOVEABANDONED = "removeAbandoned";
+ private final static String PROP_REMOVEABANDONEDONBORROW = "removeAbandonedOnBorrow";
+ private final static String PROP_REMOVEABANDONEDONMAINTENANCE = "removeAbandonedOnMaintenance";
private final static String PROP_REMOVEABANDONEDTIMEOUT = "removeAbandonedTimeout";
private final static String PROP_LOGABANDONED = "logAbandoned";
private final static String PROP_POOLPREPAREDSTATEMENTS = "poolPreparedStatements";
@@ -111,7 +112,8 @@ public class BasicDataSourceFactory impl
PROP_VALIDATIONQUERY_TIMEOUT,
PROP_CONNECTIONINITSQLS,
PROP_ACCESSTOUNDERLYINGCONNECTIONALLOWED,
- PROP_REMOVEABANDONED,
+ PROP_REMOVEABANDONEDONBORROW,
+ PROP_REMOVEABANDONEDONMAINTENANCE,
PROP_REMOVEABANDONEDTIMEOUT,
PROP_LOGABANDONED,
PROP_POOLPREPAREDSTATEMENTS,
@@ -326,9 +328,14 @@ public class BasicDataSourceFactory impl
dataSource.setAccessToUnderlyingConnectionAllowed(Boolean.valueOf(value).booleanValue());
}
- value = properties.getProperty(PROP_REMOVEABANDONED);
+ value = properties.getProperty(PROP_REMOVEABANDONEDONBORROW);
if (value != null) {
- dataSource.setRemoveAbandoned(Boolean.valueOf(value).booleanValue());
+ dataSource.setRemoveAbandonedOnBorrow(Boolean.valueOf(value).booleanValue());
+ }
+
+ value = properties.getProperty(PROP_REMOVEABANDONEDONMAINTENANCE);
+ if (value != null) {
+ dataSource.setRemoveAbandonedOnMaintenance(Boolean.valueOf(value).booleanValue());
}
value = properties.getProperty(PROP_REMOVEABANDONEDTIMEOUT);
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/DelegatingConnection.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/DelegatingConnection.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/DelegatingConnection.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/DelegatingConnection.java Thu Jan 10 21:55:36 2013
@@ -91,18 +91,6 @@ public class DelegatingConnection extend
_conn = c;
}
- /**
- * Create a wrapper for the Connection which traces
- * the Statements created so that any unclosed Statements
- * can be closed when this Connection is closed.
- *
- * @param c the {@link Connection} to delegate all calls to.
- * @param config the configuration for tracing abandoned objects
- */
- public DelegatingConnection(Connection c, AbandonedConfig config) {
- super(config);
- _conn = c;
- }
/**
* Returns a string representation of the metadata associated with
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnection.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnection.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnection.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnection.java Thu Jan 10 21:55:36 2013
@@ -47,18 +47,6 @@ public class PoolableConnection extends
_pool = pool;
}
- /**
- *
- * @param conn my underlying connection
- * @param pool the pool to which I should return when closed
- * @param config the abandoned configuration settings
- */
- public PoolableConnection(Connection conn,
- ObjectPool<PoolableConnection> pool, AbandonedConfig config) {
- super(conn, config);
- _pool = pool;
- }
-
/**
* Returns me to my pool.
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/PoolableConnectionFactory.java Thu Jan 10 21:55:36 2013
@@ -147,10 +147,6 @@ public class PoolableConnectionFactory
_defaultCatalog = defaultCatalog;
}
- public void setAbandonedConfig(AbandonedConfig abandonedConfig) {
- this._config = abandonedConfig;
- }
-
public void setCacheState(boolean cacheState) {
this._cacheState = cacheState;
}
@@ -194,7 +190,7 @@ public class PoolableConnectionFactory
((PoolingConnection)conn).setStatementPool(stmtPool);
((PoolingConnection) conn).setCacheState(_cacheState);
}
- return new PoolableConnection(conn,_pool,_config);
+ return new PoolableConnection(conn,_pool);
}
protected void initializeConnection(Connection conn) throws SQLException {
@@ -326,11 +322,6 @@ public class PoolableConnectionFactory
GenericKeyedObjectPoolConfig.DEFAULT_MAX_TOTAL_PER_KEY;
/**
- * Configuration for removing abandoned connections.
- */
- protected AbandonedConfig _config = null;
-
- /**
* Internal constant to indicate the level is not set.
*/
static final int UNKNOWN_TRANSACTIONISOLATION = -1;
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java Thu Jan 10 21:55:36 2013
@@ -17,7 +17,6 @@
*/
package org.apache.commons.dbcp2.managed;
-import org.apache.commons.dbcp2.AbandonedConfig;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.dbcp2.ConnectionFactory;
import org.apache.commons.dbcp2.PoolableConnectionFactory;
@@ -38,7 +37,7 @@ import java.sql.SQLException;
* </p>
* <p>BasicManagedDataSource adds the TransactionManager and XADataSource
* properties. The TransactionManager property is required and is
- * used to elist connections in global transactions. The XADataSource
+ * used to enlist connections in global transactions. The XADataSource
* is optional and if set is the class name of the XADataSource class
* for a two-phase-commit JDBC driver. If the XADataSource property
* is set, the driverClassName is ignored and a DataSourceXAConnectionFactory
@@ -179,8 +178,7 @@ public class BasicManagedDataSource exte
*/
@Override
protected PoolableConnectionFactory createPoolableConnectionFactory(
- ConnectionFactory driverConnectionFactory,
- AbandonedConfig abandonedConfig) throws SQLException {
+ ConnectionFactory driverConnectionFactory) throws SQLException {
PoolableConnectionFactory connectionFactory = null;
try {
connectionFactory = new PoolableManagedConnectionFactory(
@@ -194,7 +192,6 @@ public class BasicManagedDataSource exte
connectionFactory.setDefaultAutoCommit(defaultAutoCommit);
connectionFactory.setDefaultTransactionIsolation(defaultTransactionIsolation);
connectionFactory.setDefaultCatalog(defaultCatalog);
- connectionFactory.setAbandonedConfig(abandonedConfig);
connectionFactory.setPoolStatements(poolPreparedStatements);
connectionFactory.setMaxOpenPrepatedStatements(
maxOpenPreparedStatements);
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnection.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnection.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnection.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnection.java Thu Jan 10 21:55:36 2013
@@ -20,7 +20,6 @@ package org.apache.commons.dbcp2.managed
import java.sql.Connection;
import java.sql.SQLException;
-import org.apache.commons.dbcp2.AbandonedConfig;
import org.apache.commons.dbcp2.PoolableConnection;
import org.apache.commons.pool2.ObjectPool;
@@ -33,20 +32,6 @@ import org.apache.commons.pool2.ObjectPo
public class PoolableManagedConnection extends PoolableConnection {
private final TransactionRegistry transactionRegistry;
- /**
- * Create a PoolableManagedConnection.
- *
- * @param transactionRegistry transaction registry
- * @param conn underlying connection
- * @param pool connection pool
- * @param config abandoned configuration settings
- */
- public PoolableManagedConnection(TransactionRegistry transactionRegistry,
- Connection conn, ObjectPool<PoolableConnection> pool,
- AbandonedConfig config) {
- super(conn, pool, config);
- this.transactionRegistry = transactionRegistry;
- }
/**
* Create a PoolableManagedConnection.
Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/PoolableManagedConnectionFactory.java Thu Jan 10 21:55:36 2013
@@ -75,8 +75,7 @@ public class PoolableManagedConnectionFa
((PoolingConnection)conn).setStatementPool(stmtPool);
((PoolingConnection) conn).setCacheState(_cacheState);
}
- return new PoolableManagedConnection(transactionRegistry, conn, _pool,
- _config);
+ return new PoolableManagedConnection(transactionRegistry, conn, _pool);
}
}
Modified: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java Thu Jan 10 21:55:36 2013
@@ -49,7 +49,8 @@ public class TestAbandonedBasicDataSourc
// abandoned enabled but should not affect the basic tests
// (very high timeout)
ds.setLogAbandoned(true);
- ds.setRemoveAbandoned(true);
+ ds.setRemoveAbandonedOnBorrow(true);
+ ds.setRemoveAbandonedOnMaintenance(true);
ds.setRemoveAbandonedTimeout(10000);
}
Modified: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestBasicDataSourceFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestBasicDataSourceFactory.java?rev=1431684&r1=1431683&r2=1431684&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestBasicDataSourceFactory.java (original)
+++ commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp2/TestBasicDataSourceFactory.java Thu Jan 10 21:55:36 2013
@@ -111,7 +111,8 @@ public class TestBasicDataSourceFactory
assertEquals(2, ds.getNumTestsPerEvictionRun());
assertEquals(true, ds.getTestWhileIdle());
assertEquals(true, ds.isAccessToUnderlyingConnectionAllowed());
- assertEquals(true, ds.getRemoveAbandoned());
+ assertEquals(false, ds.getRemoveAbandonedOnBorrow());
+ assertEquals(false, ds.getRemoveAbandonedOnMaintenance());
assertEquals(3000, ds.getRemoveAbandonedTimeout());
assertEquals(true, ds.getLogAbandoned());
assertEquals(true, ds.isPoolPreparedStatements());