              Apache Apache Commons DBCP
                  Version 2.0.1
                 RELEASE NOTES

The Apache Commons DBCP team is pleased to announce the release of Apache Apache Commons DBCP 2.0.1.

Apache Commons DBCP software implements Database Connection Pooling.

This is a bug fix release.

Changes in this version include:


Fixed Bugs:
o            Small performance improvements when returning connections to the pool.
o DBCP-414:  Fixed DelegatingStatement close to ensure closed statements do not retain references
             to pooled prepared statements. Due to finalization code added in 2.0, this was causing
             pooled prepared statements to be closed by GC while in use by clients. Thanks to Pasi Eronen.
o DBCP-417:  Fixed connection leak when managed connections are closed during transactions.
o DBCP-418:  Enable PoolableConnection class to load without JMX.

Changes:
o DBCP-412:  Added check in PoolingDataSource constructor to ensure that the connection factory
             and pool are properly linked.


For complete information on Apache Commons DBCP, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Commons DBCP website:

http://commons.apache.org/proper/commons-dbcp/
