Apache Commons DBCP 2.14.0 Release Notes
----------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes
-------
New features:
*            Add org.apache.commons.dbcp2.datasources.PooledConnectionManager.setPassword(char[]). Thanks to Gary Gregory.

Fixed Bugs
----------
* DBCP-597:  Validation query not timing out on connections managed by SharedPoolDataSource. Thanks to Xiaotian Bai, Raju Gupta, Gary Gregory.
* DBCP-597:  Validation query not timing out on connections managed by PerUserPoolDataSource. Thanks to Gary Gregory.
* DBCP-597:  KeyedCPDSConnectionFactory.validateObject(UserPassKey, PooledObject) ignores timeouts less than 1 second when there is no validation query. Thanks to Gary Gregory.
*            Modernize tests to use JUnit 5 features. Thanks to Gary Gregory.
*            Javadoc is missing its Overview page. Thanks to Gary Gregory.
*            Deprecate org.apache.commons.dbcp2.Jdbc41Bridge.Jdbc41Bridge(), constructor will be private in the next major release. Thanks to Gary Gregory.
*            Deprecate org.apache.commons.dbcp2.Constants.Constants(), constructor will be private in the next major release. Thanks to Gary Gregory.
*            Fix Javadoc warnings on Java 17. Thanks to Gary Gregory.
*            Fix Javadoc warnings on Java 21. Thanks to Gary Gregory.
*            Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory.
*            XAException thrown by LocalXAResource now all include a message. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "isSharedConnection" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.managed.ManagedConnection] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "closed" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.cpdsadapter.PooledConnectionImpl] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "closed" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.DelegatingStatement] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "cacheState" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.DelegatingConnection] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Operation on the "fatalSqlExceptionThrown" shared variable in "PoolableConnection" class is not atomic [org.apache.commons.dbcp2.PoolableConnection] AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "clearStatementPoolOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolingConnection] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "maxTotal" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.SharedPoolDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultBlockWhenExhausted" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultLifo" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultMaxIdle" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultMaxTotal" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultMinIdle" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultNumTestsPerEvictionRun" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultTestOnBorrow" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultTestOnCreate" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultTestOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultTestWhileIdle" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultTransactionIsolation" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "rollbackAfterValidation" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.datasources.InstanceKeyDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "loginTimeout" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS] At DriverAdapterCPDS.java:[line 644] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "maxIdle" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS] At DriverAdapterCPDS.java:[line 664] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "maxPreparedStatements" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS] At DriverAdapterCPDS.java:[line 673] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "numTestsPerEvictionRun" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS] At DriverAdapterCPDS.java:[line 722] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "poolPreparedStatements" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS] At DriverAdapterCPDS.java:[line 757] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "autoCommitOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory-] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "cacheState" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "clearStatementPoolOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "defaultTransactionIsolation" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "autoCommitOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "fastFailValidation" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "maxOpenPreparedStatements" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "poolStatements" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "rollbackOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.PoolableConnectionFactory] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "autoCommitOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbc-p2.BasicDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "cacheState" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.BasicDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "clearStatementPoolOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.BasicDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "autoCommitOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.BasicDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "fastFailValidation" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.BasicDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "logExpiredConnections" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.BasicDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "registerConnectionMBean" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.BasicDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix SpotBugs [ERROR] Medium: Shared primitive variable "rollbackOnReturn" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.dbcp2.BasicDataSource] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
*            Fix a potential resource leak if an SQLException occurs during an attempt to obtain an XAConnection. Thanks to Coverity Scan.
*            Minor optimisations to the processing of the "connectionProperties" string. Thanks to Coverity Scan.

Changes
-------
*            Update tests and CPDSConnectionFactory#invalidate to accomodate changed behavior in the fix for POOL-424.
*            Bump org.apache.commons:commons-parent from 78 to 93 #521, #537, #538. Thanks to Gary Gregory.
*            Bump org.apache.commons:commons-pool2 from 2.12.0 to 2.13.0 #474. Thanks to Gary Gregory.
*            Port site from Doxia 1 to 2. Thanks to Gary Gregory.
*            Bump commons-logging:commons-logging from 1.3.4 to 1.3.5. Thanks to Gary Gregory.
*            Bump org.slf4j:slf4j-simple from 2.0.16 to 2.0.17 #481. Thanks to Gary Gregory.
*            Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.20.0 #506. Thanks to Gary Gregory, Dependabot.

Removed
-------
*            Removed internal constructors and methods from the package-private class CPDSConnectionFactory; this is binary compatible. Thanks to Gary Gregory.
*            Removed an internal constructor and methods from the package-private class KeyedCPDSConnectionFactory; this is binary compatible. Thanks to Gary Gregory.

The list of changes is here: https://commons.apache.org/proper/commons-dbcp/changes.html

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

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

Download page: https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------
Apache Commons DBCP 2.13.0 Release Notes
----------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes
-------
New features:
*            Add support for ignoring non-fatal SQL state codes #421. Thanks to Johno Crawford, Gary Gregory.
*            Add @FunctionalInterface to SwallowedExceptionListener. Thanks to Johno Crawford, Gary Gregory.
*            Add missing Javadoc comments and descriptions. Thanks to Gary Gregory.
*            Add tests, raise the bar for JaCoCo checks. Thanks to Gary Gregory.

Fixed Bugs
----------
*            Avoid object creation when invoking isDisconnectionSqlException #422. Thanks to Johno Crawford.
* DBCP-599:  PoolableConnectionFactory.destroyObject() method behaves incorrectly on ABANDONED connection, issue with unhandled AbstractMethodError. DelegatingConnection.abort(Executor) should delegate to Jdbc41Bridge Thanks to denixx baykin, Phil Steitz, Gary Gregory.
*            DelegatingConnection.setSchema(String) should delegate to Jdbc41Bridge. Thanks to Gary Gregory.
*            Fix possible NullPointerException in PoolingConnection.close(). Thanks to Gary Gregory.
*            PerUserPoolDataSource.registerPool() incorrectly replacing a CPDSConnectionFactory into managers map before throwing an IllegalStateException. Thanks to Gary Gregory.
*            Fix PMD UnnecessaryFullyQualifiedName in AbandonedTrace. Thanks to Gary Gregory.
*            Fix PMD UnnecessaryFullyQualifiedName in PoolableCallableStatement. Thanks to Gary Gregory.
*            Fix PMD UnnecessaryFullyQualifiedName in PoolablePreparedStatement. Thanks to Gary Gregory.
*            Fix PMD UnnecessaryFullyQualifiedName in Utils. Thanks to Gary Gregory.
*            Fix PMD UnnecessaryFullyQualifiedName in LocalXAConnectionFactory. Thanks to Gary Gregory.
*            Fix SpotBugs MC_OVERRIDABLE_METHOD_CALL_IN_READ_OBJECT in PerUserPoolDataSource. Thanks to Gary Gregory.
*            Fix SpotBugs MC_OVERRIDABLE_METHOD_CALL_IN_READ_OBJECT in SharedPoolDataSource. Thanks to Gary Gregory.

Changes
-------
*            Bump org.apache.commons:commons-parent from 66 to 78 #360, #371, #395, #420, #426, #436, #441, #449. Thanks to Gary Gregory.
*            Bump commons-logging:commons-logging from 1.3.0 to 1.3.4 #368, #399, #423. Thanks to Gary Gregory, Dependabot.
*            Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #404, #412, #427. Thanks to Gary Gregory, Dependabot.
*            Bump org.hamcrest:hamcrest from 2.2 to 3.0 #410. Thanks to Gary Gregory, Dependabot.
*            Bump org.slf4j:slf4j-simple from 2.0.13 to 2.0.16 #413, #418. Thanks to Gary Gregory, Dependabot.


The list of changes is here: https://commons.apache.org/proper/commons-dbcp/changes-report.html

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

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

Download page: https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.12.0 Release Notes
----------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

New features
------------
*            Add property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory.
*            Add null guards in DelegatingDatabaseMetaData constructor #352. Thanks to Heewon Lee.
* DBCP-473:  Data source bean creation failed due to mismatched return type of setter and getter for connectionInitSqls in BasicDataSource: Add BasicDataSource.setConnectionInitSqls(List). Thanks to Steve Cohen, Gary Gregory.

Fixed Bugs
----------
* DBCP-590:  BasicDataSource#setAbandonedUsageTracking has no effect. Thanks to Réda Housni Alaoui.
* DBCP-596:  PoolingConnection.toString() causes StackOverflowError. Thanks to Aapo Haapanen, Gary Gregory.
*            PooledConnectionImpl.destroyObject(PStmtKey, PooledObject) can throw NullPointerException #312. Thanks to Gary Gregory, Rémy Maucherat.
*            PoolingConnection.destroyObject(PStmtKey, PooledObject) can throw NullPointerException #312. Thanks to Gary Gregory, Rémy Maucherat.
* DBCP-477:  Fix examples in src/main/java/org/apache/commons/dbcp2/package-info.java. Thanks to Mubasher Usman, Gary Gregory.

Changes
-------
*            Use ReentrantLock in PoolableConnection.close, #591 Thanks to cortlepp-intershop.
*            Bump commons-lang3 from 3.13.0 to 3.14.0. Thanks to Gary Gregory.
*            Bump commons-parent from 64 to 66. Thanks to Gary Gregory.
*            Bump org.slf4j:slf4j-simple from 2.0.9 to 2.0.12 #349. Thanks to Dependabot.


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

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

Download page: https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.11.0 Release Notes
----------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes in this version include:

Changes
-------
o            Update call sites of deprecated APIs from Apache Commons Pool. Thanks to Gary Gregory.
o            Add DataSourceMXBean.getUserName() and deprecate getUsername(). Thanks to Gary Gregory, Dependabot.
o            Bump h2 from 2.2.220 to 2.2.224, #308. Thanks to Gary Gregory, Dependabot.
o            Bump commons-parent from 60 to 64. Thanks to Gary Gregory.
o            Bump org.slf4j:slf4j-simple from 2.0.7 to 2.0.9 #301. Thanks to Dependabot.
o            Bump org.apache.commons:commons-pool2 from 2.11.1 to 2.12.0. Thanks to Gary Gregory.
o            Bump jakarta.transaction:jakarta.transaction-api from 1.3.1 to 1.3.3. Thanks to Gary Gregory.


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

https://commons.apache.org/dbcp/

Download page: https://commons.apache.org/dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.10.0 Release Notes
----------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes in this version include:

New features
------------
o            Add and use AbandonedTrace#setLastUsed(Instant). Thanks to Gary Gregory.
o            - Add and use Duration versions of now deprecated APIs that use ints and longs. 
             - Internally track durations with Duration objects instead of ints and longs.
             - See the JApiCmp report for the complete list. Thanks to Gary Gregory.
o            Add PMD check to default Maven goal. Thanks to Gary Gregory.
o            Add Utils.getDisconnectionSqlCodes() and Utils.DISCONNECTION_SQL_CODES. Thanks to Gary Gregory.
o            Make BasicDataSource.getConnectionPool() public. Thanks to Gary Gregory.
o            Add github/codeql-action. Thanks to Gary Gregory.

Fixed Bugs
----------
o            Fix StackOverflowError in PoolableConnection.isDisconnectionSqlException #123. Thanks to newnewcoder, Gary Gregory.
o            PerUserPoolDataSourceFactory.getNewInstance(Reference) parsed defaultMaxWaitMillis as an int instead of a long. Thanks to Gary Gregory.
o            Reimplement time tracking in AbandonedTrace with an Instant instead of a long. Thanks to Gary Gregory.
o            Migrate away from deprecated APIs in Apache Commons Pool. Thanks to Gary Gregory.
o            Fix possible NullPointerException in BasicDataSourceFactory.validatePropertyNames(). Thanks to Gary Gregory.
o            Fix possible NullPointerException in BasicDataSourceFactory.getObjectInstance(). Thanks to Gary Gregory.
o DBCP-585:  Connection level JMX queries result in concurrent access to connection objects, causing errors #179. Thanks to Kurtcebe Eroglu, Gary Gregory, Phil Steitz.
o            UserPassKey should be Serializable. Thanks to Gary Gregory.
o            LifetimeExceededException should extend SQLException. Thanks to Gary Gregory.
o            Replace Exception with SQLException in some method signatures (preserves binary compatibility, not source). Thanks to Gary Gregory.
o            Don't leak Connections when PoolableConnectionFactory.makeObject() fails to create a JMX ObjectName. Thanks to Gary Gregory.
o            Performance: No need for map lookups if we traverse map entries instead of keys. Thanks to SpotBugs, Gary Gregory.
o            Performance: Refactor to use a static inner class in DataSourceXAConnectionFactory. Thanks to SpotBugs, Gary Gregory.
o            Reuse pattern of throwing XAException instead of NullPointerException in LocalXAConnectionFactory.LocalXAResource. Thanks to SpotBugs, Gary Gregory.
o            SpotBugs: An overridable method is called from constructors in PoolableCallableStatement. Thanks to SpotBugs, Gary Gregory.
o            SpotBugs: An overridable method is called from constructors in PoolablePreparedStatement. Thanks to SpotBugs, Gary Gregory.
o            Wrong property name logged in ConnectionFactoryFactory.createConnectionFactory(BasicDataSource, Driver). Thanks to Gary Gregory.
o            Throw SQLException instead of NullPointerException when the connection is already closed. Thanks to Gary Gregory.
o            CPDSConnectionFactory.makeObject() does not need to wrap and rethrow SQLException. Thanks to Gary Gregory.
o            PoolingDataSource.close() now always throws SQLException. Thanks to Gary Gregory.
o            [StepSecurity] ci: Harden GitHub Actions #282. Thanks to step-security-bot, Gary Gregory.
o            Fixes typos, missing or misplaced characters, and grammar issues #299. Thanks to Martin Wiesner.

Changes
-------
o            Bump actions/cache from 2.1.6 to 3.0.8 #147, #176. Thanks to Dependabot, Gary Gregory.
o            Bump actions/checkout from 2.3.4 to 3.0.2 #139, #143, #173. Thanks to Dependabot, Gary Gregory.
o            Bump actions/setup-java from 2 to 3.6.0 #229. Thanks to Gary Gregory, Dependabot.
o            Bump actions/upload-artifact from 3.1.0 to 3.1.1 #231. Thanks to Dependabot.
o            Bump checkstyle from 8.44 to 9.3 #121, #130, #149, #158, #190. Thanks to Dependabot.
o            Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #210. Thanks to Dependabot.
o            Bump commons-pool2 2.10.0 to 2.11.1. Thanks to Gary Gregory, Dependabot.
o            Bump junit-jupiter from 5.8.0-M1 to 5.9.1 #125, #136, #157, #203, #218. Thanks to Dependabot.
o            Bump spotbugs-maven-plugin from 4.3.0 to 4.7.3.0 #140, #154, #161, #178, #192, #200, #204, #213, #234. Thanks to Dependabot.
o            Bump spotbugs from 4.3.0 to 4.7.3 #124, #133, #151, #164, #177, #189, #214, #230. Thanks to Dependabot, Gary Gregory.
o            Bump org.mockito:mockito-core from 3.11.2 to 4.11.0, #128, #138, #152, #175, #188. #193, #208, #215, #232, #235, #246, #252. Thanks to Gary Gregory, Dependabot.
o            Bump maven-javadoc-plugin from 3.3.0 to 3.4.1 #131, #184. Thanks to Dependabot.
o            Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #132, #172, #195. Thanks to Dependabot, Gary Gregory.
o            Bump pmd from 6.44.0 to 6.52.0. Thanks to Dependabot, Gary Gregory.
o            Bump narayana-jta from 5.12.0.Final to 5.12.7.Final #134, #156, #163, #185, #197. Thanks to Dependabot.
o            Bump japicmp-maven-plugin from 0.15.3 to 0.17.1 #137, #166, #174, #211, #238. Thanks to Dependabot.
o            Bump h2 from 1.4.200 to 2.2.220 #153, #183, #196, #287.
             Update SQL for migration from H2 1.4.200 to 2.0.204 where "KEY" and "VALUE" are now reserved keywords. Thanks to Gary Gregory, Dependabot.
o            Bump jboss-logging from 3.4.2.Final to 3.4.3.Final #162. Thanks to Dependabot.
o            Bump slf4j-simple from 1.7.30 to 1.7.36 #169. Thanks to Dependabot.
o            Bump commons-parent from 52 to 60 #180, #219, #254, #278. Thanks to Dependabot, Gary Gregory.
o            Bump JaCoCo from 0.8.7 to 0.8.8. Thanks to Gary Gregory.
o            Bump maven-surefire-plugin 2.22.2 to 3.0.0-M7. Thanks to Gary Gregory.
o            Bump apache-rat-plugin 0.13 to 0.14. Thanks to Gary Gregory.
o            Bump commons-lang3 from 3.12 to 3.13.0. Thanks to Gary Gregory.


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

https://commons.apache.org/dbcp/

Download page: https://commons.apache.org/dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.9.0 Release Notes
---------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes in this version include:

New features
------------
o            Add and reuse Constants.KEY_USER and Constants.KEY_PASSWORD. Thanks to Gary Gregory.
o            Add and reuse DataSourceMXBean. Thanks to Frank Gasdorf, Gary Gregory.
o            Add and reuse DriverAdapterCPDS.{get|set}DurationBetweenEvictionRuns(), deprecate {get|set}TimeBetweenEvictionRunsMillis(long). Thanks to Gary Gregory.
o            Add and reuse DriverAdapterCPDS.{get|set}MinEvictableIdleDuration(), deprecate {get|set}MinEvictableIdleTimeMillis(int). Thanks to Gary Gregory.
o            Add and reuse CPDSConnectionFactory.setMaxConnLifetime(Duration), deprecate setMaxConnLifetimeMillis(long). Thanks to Gary Gregory.
o            Add and reuse KeyedCPDSConnectionFactory.setMaxConnLifetime(Duration), deprecate setMaxConnLifetimeMillis(long). Thanks to Gary Gregory.
o            Add and reuse KeyedCPDSConnectionFactory.setMaxConnLifetime(Duration), deprecate setMaxConnLifetimeMillis(long). Thanks to Gary Gregory.
o            Add and reuse InstanceKeyDataSource.{get|set}DefaultMaxWait(Duration), deprecate {get|set}DefaultMaxWaitMillis(long). Thanks to Gary Gregory.

Fixed Bugs
----------
o DBCP-569:  Fix test random failure on TestSynchronizationOrder.testInterposedSynchronization, #84. Thanks to Florent Guillaume.
o DBCP-568:  ManagedConnection must clear its cached state after transaction completes, #75. Thanks to Florent Guillaume.
o            Minor Improvements #78. Thanks to Arturo Bernal.
o DBCP-567:  Use abort rather than close to clean up abandoned connections. Thanks to Phil Steitz, Gary Gregory, Phil Steitz, Romain Manni-Bucau.
o            Performance Enhancement: Call toArray with Zero Array Size #20. Thanks to Gary Gregory, DaGeRe.
o DBCP-562:  Avoid exposing password via JMX #38. Thanks to Frank Gasdorf, Gary Gregory.
o DBCP-575:  Remove redundant initializers #98. Thanks to Arturo Bernal.
o DBCP-577:  Simplify test assertions #100, #113. Thanks to Arturo Bernal.
o DBCP-573:  DataSource implementations do not implement Wrapper interface correctly #93. Thanks to Réda Housni Alaoui, Gary Gregory.
o            Replace FindBugs with SpotBugs.
o            DataSourceConnectionFactory.getUserPassword() may expose internal representation by returning DataSourceConnectionFactory.userPassword.
o            DataSourceXAConnectionFactory.getUserPassword() may expose internal representation by returning DataSourceXAConnectionFactory.userPassword.
o            DriverAdapterCPDS.getPasswordCharArray() may expose internal representation by returning DriverAdapterCPDS.userPassword.
o            new org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory(TransactionManager, XADataSource, String, char[], TransactionSynchronizationRegistry) may expose internal representation by storing an externally mutable object into DataSourceXAConnectionFactory.userPassword.
o            org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory.setPassword(char[]) may expose internal representation by storing an externally mutable object into DataSourceXAConnectionFactory.userPassword.
o            org.apache.commons.dbcp2.PStmtKey.getColumnIndexes() may expose internal representation by returning PStmtKey.columnIndexes.
o            org.apache.commons.dbcp2.PStmtKey.getColumnNames() may expose internal representation by returning PStmtKey.columnNames.
o DBCP-578:  Use Collections.synchronizedList() Instead Of Vector #101. Thanks to Arturo Bernal.
o DBCP-576:  Simplify and inline variables #99. Thanks to Arturo Bernal.
o            Update PoolKey#toString() to avoid revealing a user name is here. Thanks to Gary Gregory.
o            Internal package private UserPassKey class stores its user name as a char[] as it already does the password. Thanks to Gary Gregory.
o DBCP-579:  Performance of DelegatingConnection.prepareStatement(String) regressed enormously in 2.8.0 compared to 1.4.
             DelegatingConnection should also cache connection schema string to avoid calling the Connection#getSchema() for each key creation.
             DelegatingConnection should also cache connection catalog string to avoid calling the Connection#getCatalog() for each key creation. Thanks to Shaktisinh Jhala, Gary Gregory.
o            BasicDataSource should test for the presence of a security manager dynamically, not once on initialization. Thanks to Gary Gregory.

Changes
-------
o            Bump mockito-core from 3.5.11 to 3.11.2 #66, #72, #77, #85, #91, #105, #110, #116. Thanks to Dependabot.
o            Bump actions/checkout from v2.3.2 to v2.3.4 #65, #74. Thanks to Dependabot.
o            Bump actions/cache from v2 to v2.1.6 #90, #108. Thanks to Dependabot.
o            Bump commons-pool2 from 2.8.1 to 2.9.0. Thanks to Gary Gregory.
o            Bump actions/setup-java from v1.4.2 to v2 #69. Thanks to Dependabot, Gary Gregory.
o            Bump japicmp-maven-plugin from 0.14.3 to 0.15.2 #71, #82. Thanks to Dependabot, Gary Gregory.
o            Bump maven-pmd-plugin from 3.13.0 to 3.14.0 #76. Thanks to Dependabot.
o            Bump japicmp-maven-plugin from 0.14.4 to 0.15.3, #83. Thanks to Dependabot, Gary Gregory.
o            Bump Hamcrest 1.3 -> 2.2 #70. Thanks to John Patrick.
o            Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #88. Thanks to Gary Gregory.
o            Bump junit-jupiter from 5.7.0 to 5.8.0-M1, #89, #106. Thanks to Gary Gregory.
o            Bump narayana-jta from 5.10.6.Final to 5.12.0.Final #103, #111. Thanks to Dependabot.
o            Bump maven-javadoc-plugin from 3.2.0 to 3.3.0 #107. Thanks to Dependabot.
o            Bump commons.jacoco.version 0.8.6 -> 0.8.7. Thanks to Gary Gregory.
o            Bump jboss-logging from 3.4.1.Final to 3.4.2.Final #109. Thanks to Dependabot.
o            Bump org.jboss:jboss-transaction-spi from 7.6.0.Final to 7.6.1.Final. Thanks to Gary Gregory.
o            Bump commons-pool2 from 2.9.0 to 2.10.0. Thanks to Gary Gregory.
o            Bump checkstyle to 8.44. Thanks to Gary Gregory.
o            Bump spotbugs from 4.2.3 to 4.3.0 #117. Thanks to Dependabot.
o            Bump spotbugs-maven-plugin from 4.2.3 to 4.3.0 #118. Thanks to Dependabot.


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

https://commons.apache.org/dbcp/

Download page: https://commons.apache.org/dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.8.0 Release Notes
---------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes in this version include:

New features
------------
o DBCP-564:  Fix BasicManagedDataSource leak of connections opened after transaction is rollback-only #39. Thanks to Florent Guillaume.
o DBCP-566:  Add clearStatementPoolOnReturn #42. Thanks to Robert Paschek, Gary Gregory, Phil Steitz.
o DBCP-559:  Add start, restart methods to BasicDataSource. #50. Thanks to Phil Steitz.

Fixed Bugs
----------
o DBCP-555:  NPE when creating a SQLExceptionList with a null list. Thanks to Gary Gregory.
o DBCP-558:  Fix DelegatingConnection readOnly and autoCommit caching mechanism #35. Thanks to louislatreille.
o            Fix regression introduced by unreleased code clean-up #63. Thanks to Sebastian Haas.

Changes
-------
o            Update to PR#36 - PrepareStatement and prepareCall methods are extracted #37. Thanks to DoiMasayuki, Alexander Norz, Gary Gregory.
o            Mask out user name and password from DriverAdapterCPDS.toString(). Thanks to Gary Gregory.
o DBCP-650:  Update Apache Commons Pool from 2.7.0 to 2.8.1, #48. Thanks to Gary Gregory, Dependabot.
o            Update tests from H2 1.4.199 to 1.4.200. Thanks to Gary Gregory.
o            Update tests from Mockito 3.0.0 to 3.5.11 #47, #60, #64. Thanks to Gary Gregory, Dependabot.
o            Update tests from jboss-logging 3.4.0.Final to 3.4.1.Final. Thanks to Gary Gregory.
o            Update tests from narayana-jta 5.9.5.Final to 5.10.6.Final, #61. Thanks to Gary Gregory.
o            Update tests from junit-jupiter 5.5.1 to 5.7.0 #62. Thanks to Gary Gregory.
o            Update tests from org.slf4j:slf4j-simple 1.7.26 to 1.7.30. Thanks to Gary Gregory.
o            Update build from com.github.siom79.japicmp:japicmp-maven-plugin 0.13.1 to 0.14.3. Thanks to Gary Gregory.
o            Update build from maven-javadoc-plugin 3.1.1 to 3.2.0. Thanks to Gary Gregory.
o            Update build from maven-pmd-plugin 3.12.0 to 3.13.0. Thanks to Gary Gregory.
o            Update org.apache.commons:commons-parent from 48 to 51. Thanks to Gary Gregory.
o            Update jacoco-maven-plugin from 0.8.4 to 0.8.6. Thanks to Gary Gregory.
o            Update maven-checkstyle-plugin from 3.0.0 to 3.1.1. Thanks to Gary Gregory.
o            Update actions/checkout from v1 to v2.3.2, #44, #51. Thanks to Dependabot.
o            Update actions/setup-java from v1.4.0 to v1.4.2 #58. Thanks to Dependabot.


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

https://commons.apache.org/dbcp/

Download page: https://commons.apache.org/dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.7.0 Release Notes
---------------------------------------

7 July 2019

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes in this version include:

New features
------------
o DBCP-539:  ManagedDataSource#close() should declare used exceptions. Thanks to Jacques Le Roux.
o DBCP-547:  Add a ConnectionFactory class name setting for BasicDataSource.createConnectionFactory() #33. Thanks to leechoongyon, Gary Gregory.
o            Add missing Javadocs. Thanks to Gary Gregory.

Fixed Bugs
----------
o DBCP-538:  Wrong JMX base name derived in BasicDataSource#updateJmxName. Thanks to Ragnar Haugan, Gary Gregory.
o DBCP-546:  Avoid NPE when calling DriverAdapterCPDS.toString(). Thanks to Sergey Chupov.
o DBCP-550:  java.util.IllegalFormatException while building a message for a SQLFeatureNotSupportedException in Jdbc41Bridge.getObject(ResultSet,String,Class). Thanks to Gary Gregory.
o            Fix Javadoc link in README.md #21. Thanks to LichKing-lee.

Changes
-------
o DBCP-540:  Close ObjectOutputStream before calling toByteArray() on underlying ByteArrayOutputStream #28. Thanks to emopers.
o DBCP-541:  Upgrade to JUnit Jupiter #19. Thanks to Allon Murienik.
o DBCP-542:  Fix tests on Java 11. Thanks to Zheng Feng, Gary Gregory.
o DBCP-543:  Update Apache Commons Pool from 2.6.1 to 2.6.2. Thanks to Gary Gregory.
o DBCP-529:  Add 'jmxName' property to web configuration parameters listing. Thanks to Yuri.
o DBCP-548:  Update Apache Commons Pool from 2.6.2 to 2.7.0. Thanks to Gary Gregory.
o DBCP-549:  Make org.apache.commons.dbcp2.AbandonedTrace.removeTrace(AbandonedTrace) null-safe. Thanks to Gary Gregory.
o DBCP-551:  org.apache.commons.dbcp2.DelegatingStatement.close() should try to close ALL of its result sets even when an exception occurs. Thanks to Gary Gregory.
o DBCP-552:  org.apache.commons.dbcp2.DelegatingConnection.passivate() should close ALL of its resources even when an exception occurs. Thanks to Gary Gregory.
o DBCP-553:  org.apache.commons.dbcp2.PoolablePreparedStatement.passivate() should close ALL of its resources even when an exception occurs. Thanks to Gary Gregory.
o DBCP-554:  org.apache.commons.dbcp2.PoolableCallableStatement.passivate() should close ALL of its resources even when an exception occurs. Thanks to Gary Gregory.
o            Update tests from org.mockito:mockito-core 2.28.2 to 3.0.0. Thanks to Gary Gregory.
o            Update tests from H2 1.4.198 to 1.4.199. Thanks to Gary Gregory.
o            Update tests from com.h2database:h2 1.4.197 to 1.4.199. Thanks to Gary Gregory.
o            Update tests from org.jboss.narayana.jta:narayana-jta 5.9.2.Final to 5.9.5.Final. Thanks to Gary Gregory.
o            Update tests from org.jboss.logging:jboss-logging 3.3.2.Final to 3.4.0.Final. Thanks to Gary Gregory.
o            Update tests from org.mockito:mockito-core 2.24.0 to 2.28.2. Thanks to Gary Gregory.
o            Update tests from org.mockito:mockito-core 2.28.2 to 3.0.0. Thanks to Gary Gregory.


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

https://commons.apache.org/dbcp/

Download page: https://commons.apache.org/dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.6.0 Release Notes
---------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes in this version include:

New features
------------
o DBCP-534:  Allow for manual connection eviction. Thanks to Peter Wicks.
o DBCP-514:  Allow DBCP to register with a TransactionSynchronizationRegistry for XA cases. Thanks to Tom Jenkinson, Gary Gregory.
o DBCP-519:  Add some toString() methods for debugging (never printing passwords.) Thanks to Gary Gregory.
o DBCP-527:  Add getters to some classes. Thanks to Gary Gregory.
o DBCP-528:  org.apache.commons.dbcp2.DriverManagerConnectionFactory should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.

Fixed Bugs
----------
o DBCP-518:  Allow DBCP to work with old Java 6/JDBC drivers without throwing AbstractMethodError. Thanks to Gary Gregory.

Changes
-------
o DBCP-517:  Make defensive copies of char[] passwords. Thanks to Gary Gregory.
o DBCP-515:  Do not try to register synchronization when the transaction is no longer active. Thanks to Tom Jenkinson, Gary Gregory.
o DBCP-516:  Do not double returnObject back to the pool if there is a transaction context with a shared connection. Thanks to Tom Jenkinson, Gary Gregory.
o DBCP-520:  BasicManagedDataSource needs to pass the TSR with creating DataSourceXAConnectionFactory. Thanks to Zheng Feng.
o DBCP-537:  Update Apache Commons Pool from 2.6.0 to 2.6.1. Thanks to Gary Gregory.


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

https://commons.apache.org/dbcp/

Download page: https://commons.apache.org/dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.5.0 Release Notes
---------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements and requires Java 8 or above to support JDBC 4.2.

Changes in this version include:

New features
------------
o DBCP-506:  Support JDBC 4.2. Thanks to Gary Gregory.
o DBCP-479:  Support default schema in configuration. Thanks to Guillaume Husta, Gary Gregory.

Fixed Bugs
----------
o DBCP-508:  Prepared statement keys should take a Connection's schema into account. Thanks to Gary Gregory.
o DBCP-512:  Avoid exceptions when closing a connection in mutli-threaded use case. Thanks to Gary Gregory.

Changes
-------
o DBCP-505:  Update Java requirement from version 7 to 8. Thanks to Gary Gregory.
o DBCP-427:  Examines 'SQLException's thrown by underlying connections or statements for fatal (disconnection) errors. Thanks to Vladimir Konkov, Phil Steitz, Gary Gregory.
o DBCP-507:  Change default for fail-fast connections from false to true. Thanks to Vladimir Konkov, Phil Steitz, Gary Gregory.
o DBCP-504:  Increase test coverage. Thanks to Bruno P. Kinoshita.
o DBCP-510:  Update Apache Commons Pool from 2.5.0 to 2.6.0. Thanks to Gary Gregory.

Note that Clirr incorrectly reports one binary incompatible change because it is not aware of Java 8 and default methods:
[ERROR] 7012: org.apache.commons.dbcp2.BasicDataSourceMXBean: Method 'public java.lang.String getDefaultSchema()' has been added to an interface

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

https://commons.apache.org/dbcp/

Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.4.0 Release Notes
---------------------------------------

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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements, which you can download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

Changes in this version include:


Fixed Bugs
----------
o DBCP-484:  Connection leak during XATransaction in high load. Thanks to Emanuel Freitas.
o DBCP-496:  Add support for pooling CallableStatements to the org.apache.commons.dbcp2.cpdsadapter package. Thanks to Gary Gregory.

Changes
-------
o DBCP-492:  Drop Ant build. Thanks to Gary Gregory.
o DBCP-491:  Ensure DBCP ConnectionListener can deal with transaction managers which invoke rollback in a separate thread. Thanks to Zheng Feng, Gary Gregory.
o DBCP-494:  org.apache.commons.dbcp2.PStmtKey should make copies of given arrays in constructors. Thanks to Gary Gregory.
o DBCP-495:  Remove duplicate code in org.apache.commons.dbcp2.cpdsadapter.PStmtKeyCPDS. Thanks to Gary Gregory.
o DBCP-497:  Deprecate use of PStmtKeyCPDS in favor of PStmtKey. Thanks to Gary Gregory.
o DBCP-498:  org.apache.commons.dbcp2.DataSourceConnectionFactory should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-499:  org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-500:  org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-501:  org.apache.commons.dbcp2.datasources.CPDSConnectionFactory should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-502:  org.apache.commons.dbcp2.datasources internals should use a char[] instead of a String to store passwords. Thanks to Gary Gregory.
o DBCP-503:  org.apache.commons.dbcp2.datasources.InstanceKeyDataSourceFactory.closeAll() does not close all. Thanks to Gary Gregory.


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

https://commons.apache.org/dbcp/

Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.3.0 Release Notes
---------------------------------------


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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes in this version include:

Fixed Bugs
----------
o DBCP-476:  AbandonedTrace.getTrace() contains race condition Thanks to Gary Evesson, Richard Cordova.
o DBCP-482:  Avoid javax.management.InstanceNotFoundException on shutdown when a bean is not registered. Thanks to Dennis Lloyd, Gary Gregory.

Changes
-------
o DBCP-483:  Make constant public: org.apache.commons.dbcp2.PoolingDriver.URL_PREFIX. Thanks to Gary Gregory.
o DBCP-486:  DriverAdapterCPDS.setUser(), setPassword(), and getPooledConnection() with null arguments throw NullPointerExceptions when connection properties are set. Thanks to Gary Gregory.
o DBCP-487:  Add API org.apache.commons.dbcp2.datasources.PerUserPoolDataSource.clear(). Thanks to Gary Gregory.
o DBCP-488:  NPE for org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS.setConnectionProperties(null). Thanks to Gary Gregory.
o DBCP-490:  The method org.apache.commons.dbcp2.PoolingDriver.getConnectionPool(String) does not tell you which pool name is not registered when it throws an exception. Thanks to Gary Gregory.


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

https://commons.apache.org/dbcp/

Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.2.0 Release Notes
---------------------------------------


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

Apache Commons DBCP software implements Database Connection Pooling.

This is a minor release, including bug fixes and enhancements.

Changes in this version include:

New features
------------
o DBCP-451:  Add constructor DriverManagerConnectionFactory(String).
o DBCP-462:  Refactoring to prepare for a future patch to enable pooling of all
             prepared and callable statements in PoolingConnection. Thanks to Keiichi Fujino.
o DBCP-458:  Make it simpler to extend BasicDataSource to allow sub-classes to
             provide custom GenericObjectPool implementations. Thanks to Adrian Tarau.
o DBCP-474:  Enable pooling of all prepared and callable statements
             inPoolingConnection. Thanks to Keiichi Fujino.

Fixed Bugs
----------
o DBCP-481:  Update Apache Commons Pool from 2.4.2 to 2.5.0. Thanks to Gary Gregory.
o DBCP-454:  OSGi declarations contain multiple import headers for javax.transaction. Thanks to Philipp Marx, Matt Sicker.
o DBCP-478:  Wrong parameter name in site documentation for BasicDataSource Configuration Parameters. Thanks to nicola mele.
o DBCP-452:  Add jmxName to properties set by BasicDataSourceFactory.  This
             enables container-managed pools created from JNDI Resource
             definitions to enable JMX by supplying a valid root JMX name.
o DBCP-446:  NullPointerException thrown when calling ManagedConnection.isClosed(). Thanks to Gary Gregory, feng yang, Euclides M, Phil Steitz.
o DBCP-444:  InvalidateConnection can result in closed connection returned by getConnection.
o DBCP-449:  Complete the fix for DBCP-418, enabling PoolableConnection class to load in environments
             (such as GAE) where the JMX ManagementFactory is not available. Thanks to Grzegorz D..
o DBCP-455:  Ensure that the cacheState setting is used when statement pooling is
             disabled. Thanks to Kyohei Nakamura.
o DBCP-453:  Ensure that setSoftMinEvictableIdleTimeMillis is used when working with
             BasicDataSource. Thanks to Philipp Marx.
o DBCP-456:  Correct the name of the configuration attribute
             softMinEvictableIdleTimeMillis. Thanks to Kyohei Nakamura.
o DBCP-472:  Avoid potential infinite loops when checking if an SQLException is fatal
             for a connection or not.
o DBCP-468:  Expand the fail-fast for fatal connection errors feature to include
             managed connections.
o DBCP-463:  Correct a typo in the method name
             PoolableConnectionFactory#setMaxOpenPreparedStatements. The old method
             remains but is deprecated so not to break clients currently using the
             incorrect name.
o DBCP-459:  Ensure that a thread's interrupt status is visible to the caller if the
             thread is interrupted during a call to
             PoolingDataSource.getConnection().
o DBCP-457:  When using a BasicDataSource, pass changes related to the handling of
             abandoned connections to the underlying pool so that the pool
             configuration may be updated dynamically.


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

https://commons.apache.org/dbcp/

Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi

-----------------------------------------------------------------------------

Apache Commons DBCP 2.1.1 Release Notes
---------------------------------------


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

Apache Commons DBCP software implements Database Connection Pooling.

This is a patch release, including bug fixes only.

Changes in this version include:

Fixed Bugs
----------
o DBCP-441:  Added BasicDataSource abandonedUsageTracking property missing from BasicDataSourceFactory.
o DBCP-442:  SharedPoolDataSource getConnection fails when testOnBorrow is set with
             a null validation query.
o DBCP-438:  Nested connections in a transaction (local) throws null pointer. Thanks to Raihan Kibria.
o DBCP-437:  BasicDataSource does not set disconnectionSql properties on its PoolableConnectionFactory.

Changes
-------
o            Updated pool version to 2.4.2.  The fix for POOL-300 may cause DBCP
             users to see more reports of abandoned connections (if removal and logging
             are configured).  Prior to the fix for POOL-300, the PrintWriter used to log
             abandoned connection stack traces was not being flushed on each log event.


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

https://commons.apache.org/dbcp/

Download from https://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
