From db8c34ba627d0342d911283793352804bb353c64 Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Tue, 4 May 2010 17:03:15 +0000 Subject: [PATCH] now also closing connection pool --- .../support/persistence/AbstractDatabase.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/test/enterprise/src/main/java/org/wamblee/support/persistence/AbstractDatabase.java b/test/enterprise/src/main/java/org/wamblee/support/persistence/AbstractDatabase.java index 0fc871f1..2e8f8d83 100644 --- a/test/enterprise/src/main/java/org/wamblee/support/persistence/AbstractDatabase.java +++ b/test/enterprise/src/main/java/org/wamblee/support/persistence/AbstractDatabase.java @@ -12,9 +12,12 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ package org.wamblee.support.persistence; +import java.util.logging.Level; +import java.util.logging.Logger; + import javax.sql.DataSource; import org.apache.commons.dbcp.ConnectionFactory; @@ -24,10 +27,16 @@ import org.apache.commons.dbcp.PoolingDataSource; import org.apache.commons.pool.impl.GenericObjectPool; public abstract class AbstractDatabase implements Database { + + private static final Logger LOGGER = Logger + .getLogger(AbstractDatabase.class.getName()); + private static final int CONNECTION_POOL_SIZE = 16; private DataSource itsDataSource; + private GenericObjectPool connectionPool; + private boolean started; protected AbstractDatabase() { @@ -42,7 +51,7 @@ public abstract class AbstractDatabase implements Database { * This method must be called from the start method. */ protected final void createDataSource() { - GenericObjectPool connectionPool = new GenericObjectPool(null); + connectionPool = new GenericObjectPool(null); connectionPool.setMaxActive(CONNECTION_POOL_SIZE); ConnectionFactory connectionFactory = new DriverManagerConnectionFactory( getJdbcUrl(), getUsername(), getPassword()); @@ -54,7 +63,7 @@ public abstract class AbstractDatabase implements Database { ingoredVariable(poolableConnectionFactory); itsDataSource = new PoolingDataSource(connectionPool); } - + private static void ingoredVariable(PoolableConnectionFactory aFactory) { // Empty } @@ -75,6 +84,12 @@ public abstract class AbstractDatabase implements Database { return; // nothing to do. } started = false; + try { + connectionPool.close(); + connectionPool.close(); + } catch (Exception e) { + LOGGER.log(Level.WARNING, "Could not close pool", e); + } doStop(); } -- 2.31.1