This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git
The following commit(s) were added to refs/heads/master by this push: new 3d34a5e Update tests from H2 1.4.198 to 1.4.199. 3d34a5e is described below commit 3d34a5e02008180795e0a809ceb7fd162b09bcc0 Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Wed Mar 13 12:15:20 2019 -0400 Update tests from H2 1.4.198 to 1.4.199. --- src/changes/changes.xml | 2031 ++++++++++++++++++++++++----------------------- 1 file changed, 1017 insertions(+), 1014 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index c00b2c1..aafc690 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -1,1014 +1,1017 @@ -<?xml version="1.0"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - 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. ---> - -<!-- -This file is used by the maven-changes-plugin to generate the release notes. -Useful ways of finding items to add to this file are: - -1. Add items when you fix a bug or add a feature (this makes the -release process easy :-). - -2. Do a bugzilla search for tickets closed since the previous release. - -3. Use the report generated by the maven-changelog-plugin to see all -SVN commits. Set the project.properties' maven.changelog.range -property to the number of days since the last release. - -To generate the release notes from this file: - -mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn] - -then tweak the formatting if necessary -and commit - -The <action> type attribute can be add,update,fix,remove. ---> - -<document> - <properties> - <title>Commons DBCP Release Notes</title> - </properties> - <!-- NOTE: - The description below is specially formatted so as to improve the layout of the generated release notes: - The parsing process removes all line feeds, replacing them with a single space. - The Velocity template in src/changes has been enhanced to replace pairs of adjacent spaces - with a new-line in the release notes. (These spaces are ignored when displaying HTML). - If the output is not quite correct, check for invisible trailing spaces! - - N.B. The release notes template groups actions by type, and only extracts data for the current release. - The changes report outputs actions in the order they appear in this file. - - To regenerate the release notes: - mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn] - - Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix. - --> - - <body> - <release version="2.6.1" date="2019-MM-DD" description="This is a minor release, including bug fixes and enhancements."> - <action dev="jleroux" type="add" issue="DBCP-539" due-to="Jacques Le Roux"> - ManagedDataSource::close should declare used exceptions. - </action> - <action dev="ggregory" type="add" issue="DBCP-538" due-to="Ragnar Haugan, Gary Gregory"> - Wrong JMX base name derived in BasicDataSource#updateJmxName. - </action> - </release> - <release version="2.6.0" date="2019-02-14" description="This is a minor release, including bug fixes and enhancements."> - <action dev="chtompki" type="add" issue="DBCP-534" due-to="Peter Wicks"> - Allow for manual connection eviction. - </action> - <action dev="ggregory" type="add" issue="DBCP-514" due-to="Tom Jenkinson, Gary Gregory"> - Allow DBCP to register with a TransactionSynchronizationRegistry for XA cases. - </action> - <action dev="ggregory" type="update" issue="DBCP-517" due-to="Gary Gregory"> - Make defensive copies of char[] passwords. - </action> - <action dev="ggregory" type="update" issue="DBCP-515" due-to="Tom Jenkinson, Gary Gregory"> - Do not try to register synchronization when the transaction is no longer active. - </action> - <action dev="ggregory" type="update" issue="DBCP-516" due-to="Tom Jenkinson, Gary Gregory"> - Do not double returnObject back to the pool if there is a transaction context with a shared connection. - </action> - <action dev="ggregory" type="fix" issue="DBCP-518" due-to="Gary Gregory"> - Allow DBCP to work with old Java 6/JDBC drivers without throwing AbstractMethodError. - </action> - <action dev="ggregory" type="add" issue="DBCP-519" due-to="Gary Gregory"> - Add some toString() methods for debugging (never printing passwords.) - </action> - <action dev="ggregory" type="update" issue="DBCP-520" due-to="Zheng Feng"> - BasicManagedDataSource needs to pass the TSR with creating DataSourceXAConnectionFactory. - </action> - <action dev="ggregory" type="add" issue="DBCP-527" due-to="Gary Gregory"> - Add getters to some classes. - </action> - <action dev="ggregory" type="add" issue="DBCP-528" due-to="Gary Gregory"> - org.apache.commons.dbcp2.DriverManagerConnectionFactory should use a char[] instead of a String to store passwords. - </action> - <action dev="ggregory" type="update" issue="DBCP-537" due-to="Gary Gregory"> - Update Apache Commons Pool from 2.6.0 to 2.6.1. - </action> - </release> - <release version="2.5.0" date="2018-07-15" description="This is a minor release, including bug fixes and enhancements."> - <action dev="ggregory" type="update" issue="DBCP-505" due-to="Gary Gregory"> - Update Java requirement from version 7 to 8. - </action> - <action dev="ggregory" type="add" issue="DBCP-506" due-to="Gary Gregory"> - Support JDBC 4.2. - </action> - <action dev="ggregory" type="add" issue="DBCP-479" due-to="Guillaume Husta, Gary Gregory"> - Support default schema in configuration. - </action> - <action dev="ggregory" type="update" issue="DBCP-427" due-to="Vladimir Konkov, Phil Steitz, Gary Gregory"> - Examines 'SQLException's thrown by underlying connections or statements for fatal (disconnection) errors. - </action> - <action dev="ggregory" type="update" issue="DBCP-507" due-to="Vladimir Konkov, Phil Steitz, Gary Gregory"> - Change default for fail-fast connections from false to true. - </action> - <action dev="ggregory" type="fix" issue="DBCP-508" due-to="Gary Gregory"> - Prepared statement keys should take a Connection's schema into account. - </action> - <action dev="ggregory" type="update" issue="DBCP-504" due-to="Bruno P. Kinoshita"> - Increase test coverage. - </action> - <action dev="ggregory" type="update" issue="DBCP-510" due-to="Gary Gregory"> - Update Apache Commons Pool from 2.5.0 to 2.6.0. - </action> - <action dev="ggregory" type="fix" issue="DBCP-512" due-to="Gary Gregory"> - Avoid exceptions when closing a connection in mutli-threaded use case. - </action> - </release> - <release version="2.4.0" date="2018-06-12" description="This is a minor release, including bug fixes and enhancements."> - <action dev="ggregory" type="fix" issue="DBCP-484" due-to="Emanuel Freitas"> - Connection leak during XATransaction in high load. - </action> - <action dev="ggregory" type="update" issue="DBCP-492" due-to="Gary Gregory"> - Drop Ant build. - </action> - <action dev="ggregory" type="update" issue="DBCP-491" due-to="Zheng Feng, Gary Gregory"> - Ensure DBCP ConnectionListener can deal with transaction managers which invoke rollback in a separate thread. - </action> - <action dev="ggregory" type="update" issue="DBCP-494" due-to="Gary Gregory"> - org.apache.commons.dbcp2.PStmtKey should make copies of given arrays in constructors. - </action> - <action dev="ggregory" type="update" issue="DBCP-495" due-to="Gary Gregory"> - Remove duplicate code in org.apache.commons.dbcp2.cpdsadapter.PStmtKeyCPDS. - </action> - <action dev="ggregory" type="fix" issue="DBCP-496" due-to="Gary Gregory"> - Add support for pooling CallableStatements to the org.apache.commons.dbcp2.cpdsadapter package. - </action> - <action dev="ggregory" type="update" issue="DBCP-497" due-to="Gary Gregory"> - Deprecate use of PStmtKeyCPDS in favor of PStmtKey. - </action> - <action dev="ggregory" type="update" issue="DBCP-498" due-to="Gary Gregory"> - org.apache.commons.dbcp2.DataSourceConnectionFactory should use a char[] instead of a String to store passwords. - </action> - <action dev="ggregory" type="update" issue="DBCP-499" due-to="Gary Gregory"> - org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory should use a char[] instead of a String to store passwords. - </action> - <action dev="ggregory" type="update" issue="DBCP-500" due-to="Gary Gregory"> - org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS should use a char[] instead of a String to store passwords. - </action> - <action dev="ggregory" type="update" issue="DBCP-501" due-to="Gary Gregory"> - org.apache.commons.dbcp2.datasources.CPDSConnectionFactory should use a char[] instead of a String to store passwords. - </action> - <action dev="ggregory" type="update" issue="DBCP-502" due-to="Gary Gregory"> - org.apache.commons.dbcp2.datasources internals should use a char[] instead of a String to store passwords. - </action> - <action dev="ggregory" type="update" issue="DBCP-503" due-to="Gary Gregory"> - org.apache.commons.dbcp2.datasources.InstanceKeyDataSourceFactory.closeAll() does not close all. - </action> - </release> - <release version="2.3.0" date="2018-05-12" description="This is a minor release, including bug fixes and enhancements."> - <action dev="pschumacher" type="fix" issue="DBCP-476" due-to="Gary Evesson, Richard Cordova"> - AbandonedTrace.getTrace() contains race condition. - </action> - <action dev="ggregory" type="fix" issue="DBCP-482" due-to="Dennis Lloyd, Gary Gregory"> - Avoid javax.management.InstanceNotFoundException on shutdown when a bean is not registered. Closes #9. - </action> - <action dev="ggregory" type="update" issue="DBCP-483" due-to="Gary Gregory"> - Make constant public: org.apache.commons.dbcp2.PoolingDriver.URL_PREFIX. - </action> - <action dev="ggregory" type="update" issue="DBCP-486" due-to="Gary Gregory"> - DriverAdapterCPDS.setUser(), setPassword(), and getPooledConnection() with null arguments throw NullPointerExceptions when connection properties are set. - </action> - <action dev="ggregory" type="update" issue="DBCP-487" due-to="Gary Gregory"> - Add API org.apache.commons.dbcp2.datasources.PerUserPoolDataSource.clear(). - </action> - <action dev="ggregory" type="update" issue="DBCP-488" due-to="Gary Gregory"> - NPE for org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS.setConnectionProperties(null). - </action> - <action dev="ggregory" type="update" issue="DBCP-490" due-to="Gary Gregory"> - The method org.apache.commons.dbcp2.PoolingDriver.getConnectionPool(String) does not tell you which pool name is not registered when it throws an exception. - </action> - </release> - <release version="2.2.0" date="2017-12-27" description="This is a minor release, including bug fixes and enhancements."> - <action dev="ggregory" type="fix" issue="DBCP-481" due-to="Gary Gregory"> - Update Apache Commons Pool from 2.4.2 to 2.5.0. - </action> - <action dev="mattsicker" type="fix" issue="DBCP-454" due-to="Philipp Marx, Matt Sicker"> - OSGi declarations contain multiple import headers for javax.transaction. - </action> - <action dev="ggregory" type="fix" issue="DBCP-478" due-to="nicola mele"> - Wrong parameter name in site documentation for BasicDataSource Configuration Parameters. - </action> - <action dev="psteitz" type="fix" issue="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. - </action> - <action dev="ggregory" type="fix" issue="DBCP-446" due-to="Gary Gregory, feng yang, Euclides M, Phil Steitz"> - NullPointerException thrown when calling ManagedConnection.isClosed(). - </action> - <action dev="psteitz" type="fix" issue="DBCP-444"> - InvalidateConnection can result in closed connection returned by getConnection. - </action> - <action dev="ggregory" type="fix" issue="DBCP-449" due-to="Grzegorz D."> - Complete the fix for DBCP-418, enabling PoolableConnection class to load in environments - (such as GAE) where the JMX ManagementFactory is not available. - </action> - <action dev="ggregory" type="add" issue="DBCP-451"> - Add constructor DriverManagerConnectionFactory(String). - </action> - <action dev="markt" type="fix" issue="DBCP-455" due-to="Kyohei Nakamura"> - Ensure that the cacheState setting is used when statement pooling is - disabled. - </action> - <action dev="markt" type="fix" issue="DBCP-453" due-to="Philipp Marx"> - Ensure that setSoftMinEvictableIdleTimeMillis is used when working with - BasicDataSource. - </action> - <action dev="markt" type="fix" issue="DBCP-456" due-to="Kyohei Nakamura"> - Correct the name of the configuration attribute - softMinEvictableIdleTimeMillis. - </action> - <action dev="markt" type="fix" issue="DBCP-472"> - Avoid potential infinite loops when checking if an SQLException is fatal - for a connection or not. - </action> - <action dev="markt" type="fix" issue="DBCP-468"> - Expand the fail-fast for fatal connection errors feature to include - managed connections. - </action> - <action dev="markt" type="fix" issue="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. - </action> - <action dev="markt" type="add" issue="DBCP-462" due-to="Keiichi Fujino"> - Refactoring to prepare for a future patch to enable pooling of all - prepared and callable statements in PoolingConnection. - </action> - <action dev="markt" type="fix" issue="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(). - </action> - <action dev="markt" type="add" issue="DBCP-458" due-to="Adrian Tarau"> - Make it simpler to extend BasicDataSource to allow sub-classes to - provide custom GenericObjectPool implementations. - </action> - <action dev="markt" type="fix" issue="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. - </action> - <action dev="markt" type="add" issue="DBCP-474" due-to="Keiichi Fujino"> - Enable pooling of all prepared and callable statements - inPoolingConnection. - </action> - </release> - <release version="2.1.1" date="6 Aug 2015" description= -"This is a patch release, including bug fixes only."> - <action dev="psteitz" type="update"> - 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. - </action> - <action issue="DBCP-441" dev="psteitz" type="fix"> - Added BasicDataSource abandonedUsageTracking property missing from BasicDataSourceFactory. - </action> - <action issue="DBCP-442" dev="psteitz" type="fix"> - SharedPoolDataSource getConnection fails when testOnBorrow is set with - a null validation query. - </action> - <action issue="DBCP-438" dev="psteitz" type="fix" due-to="Raihan Kibria"> - Nested connections in a transaction (local) throws null pointer. - </action> - <action issue="DBCP-437" dev="psteitz" type="fix"> - BasicDataSource does not set disconnectionSql properties on its PoolableConnectionFactory. - </action> - </release> - <release version="2.1" date="23 Feb 2015" description= - "This is minor release, including bug fixes and enhancements. Note that - one of the enhancements (DBCP-423) is to implement AutoCloseable in - BasicDataSource, PoolingDataSource and the InstanceKeyDataSource - implementations. - "> - <action issue="DBCP-420" dev="sebb" type="fix"> - InstanceKeyDataSource discards native SQLException when given password does not match - password used to create the connection. - </action> - <action issue="DBCP-422" dev="ggregory" type="update"> - Update Apache Commons Logging to 1.2 from 1.1.3. - </action> - <action dev="markt" type="fix"> - Correct some Javadoc references to Apache Commons Pool 2 classes that - have changed names since Pool 1.x. - </action> - <action dev="markt" type="fix"> - Do not ignore the configured custom eviction policy when creating a - BasicDataSource. - </action> - <action dev="psteitz" type="add" issue="DBCP-426" due-to="Kasper Sørensen"> - Added invalidateConnection method to BasicDataSource. - </action> - <action issue="DBCP-428" dev="psteitz" type="fix" due-to="Vladimir Konkov"> - Unsuccessful Connection enlistment in XA Transaction ignored by TransactionContext. - </action> - <action issue="DBCP-424" dev="psteitz" type="update"> - Made expired connection logging configurable in BasicDataSource. Setting - logExpiredConnections to false suppresses expired connection log messages. - </action> - <action issue="DBCP-423" dev="psteitz" type="update"> - Made Datasources implement AutoCloseable. - </action> - <action issue="DBCP-427" dev="psteitz" type="add" due-to="Vladimir Konkov"> - Added fastFailValidation property to PoolableConnection, configurable in - BasicDataSource. When set to true, connections that have previously thrown - fatal disconnection errors will fail validation immediately (no driver calls). - </action> - <action issue="DBCP-432" dev="psteitz" type="fix"> - Changed BasicDataSource createDataSource method to ensure that initialization - completes before clients get reference to newly created instances. - </action> - <action issue="DBCP-433" dev="psteitz" type="fix" due-to="Vladimir Konkov"> - Fixed connection leak when SQLException is thrown while enlisting an XA - transaction. - </action> - <action issue="DBCP-434" dev="psteitz" type="fix"> - Setting jmxName to null should suppress JMX registration of connection - and statement pools. - </action> - <action dev="psteitz" type="update"> - Eliminated synchronization in BasicDataSource getNumActive, getNumIdle methods. - </action> - <action issue="DBCP-435" type="update" due-to="Denixx Baykin"> - Added property name verification to BasicDataSourceFactory. References including - obsolete or unrecognized properties now generate log messages. - </action> - </release> - <release version="2.0.1" date="24 May 2014" description="This is a bug fix release."> - <action dev="markt" type="fix"> - Small performance improvements when returning connections to the pool. - </action> - <action issue="DBCP-414" dev="markt" type="fix" due-to="Pasi Eronen"> - 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. - </action> - <action issue="DBCP-412" dev="psteitz" type="update"> - Added check in PoolingDataSource constructor to ensure that the connection factory - and pool are properly linked. - </action> - <action issue="DBCP-417" dev="psteitz" type="fix"> - Fixed connection leak when managed connections are closed during transactions. - </action> - <action issue="DBCP-418" dev="psteitz" type="fix"> - Enable PoolableConnection class to load without JMX. - </action> - </release> - <release version="2.0" date="3 March 2014" description= -"This release includes new features as well as bug fixes and enhancements. - Version 2.0.x supports JDBC 4.1, so requires Java 7. - - The Java package name has been changed from 'org.apache.commons.dbcp' to 'org.apache.commons.dbcp2'. - Also the Maven groupId is now 'org.apache.commons' and the artifactId is 'commons-dbcp2' - These changes are necessary because the API is not strictly binary compatible with the 1.x releases. - To convert from the earlier releases, update the package name in imports, update the dependencies and recompile. - There may be a few other changes to be made. - - Applications running under Java 7 should use DBCP 2.0.x. - Java 6 users should use DBCP 1.4.x which supports JDBC 4. - Java 1.4 and Java 5 users should use DBCP 1.3.x which supports JDBC 3. - "> - <action issue="DBCP-411" dev="sebb" type="fix"> - BasicManagedDataSource - unregister from JMX on close(). - </action> - <action issue="DBCP-154" dev="markt" type="fix"> - Log validation failures of poolable connections. - </action> - <action issue="DBCP-403" dev="sebb" type="fix"> - DelegatingStatement.close() fails with NPE if statement is null - </action> - <action issue="DBCP-322" dev="sebb" type="fix"> - CPDSConnectionFactory.validateObject(Object) ignores Throwable. - </action> - <action dev="markt" type="add"> - Provide a new option (cacheState) to cache current values of autoCommit - and readOnly so database queries are not required for every call to the - associated getters. This option is enabled by default. - </action> - <action dev="markt" issue="DBCP-300" type="fix"> - Removed unnecessary synchronisation in BasicDataSource#createDataSource. - </action> - <action dev="markt" type="update"> - The Java package name has been changed from org.apache.commons.dbcp to - org.apache.commons.dbcp2. - </action> - <action dev="markt" type="update"> - Update to Commons Pool 2 (based on java.util.concurrent) to provide - pooling functionality. - </action> - <action dev="markt" type="update"> - Updated source code for Java 1.6 (added @Override & @Deprecated - annotations). - </action> - <action dev="markt" type="update"> - Removed JOCL support. - </action> - <action dev="markt" issue="DBCP-143" type="update"> - Remove deprecated SQLNestedException. - </action> - <action dev="markt" issue="DBCP-384" type="fix"> - Fix threading issues with accessToUnderlyingConnectionAllowed attribute - of PoolingDriver which is used to support unit testing. - </action> - <action dev="markt" issue="DBCP-292" type="add"> - BasicDataSource instances are now exposed via JMX. All the configuration - properties are available as is the connection pool and the statement - pools (if statement pooling is enabled). - </action> - <action dev="markt" issue="DBCP-376" type="fix" due-to="Dave Oxley"> - Fix thread safety issues in the SharedPoolDataSource and the - PerUserPoolDataSource. - </action> - <action dev="markt" issue="DBCP-382" type="fix" due-to="Stefan Rempfer"> - Allow accessToUnderlyingConnectionAllowed to be configured when - configuration takes place via JNDI in a JavaEE container. - </action> - <action dev="markt" issue="DBCP-369" type="fix" due-to="Michael Pradel"> - Fix threading issue when using multiple instances of the - SharedPoolDataSource concurrently. - </action> - <action dev="markt" issue="DBCP-391" type="fix"> - Ensure that the close state of a pooled connection and the underlying - connection is consistent when the underlying connection is closed as a - result of an error condition. - </action> - <action dev="markt" issue="DBCP-404" type="fix"> - Make all mutable fields private. - </action> - <action dev="markt" issue="DBCP-364" type="fix"> - Return BasicDataSource rather than DataSource from - BasicDataSourceFactory so a cast is not required to use BasicDataSource - specific methods. - </action> - <action dev="markt" issue="DBCP-358" type="fix"> - The equals() implementations of the DelegatingXxx classes are now - symmetric. There are some important API changes underlying this fix. - Firstly, two DelegatingXxx instances are no longer considered equal if - they have the same innermost delegate. Secondly, a DelegatingXxx - instance is not considered equal to its innermost delegate. The - getInnermostDelegateInternal() method has been made public (but remains - part of the internal API) to allow classes extending this implementation - to access the innermost delegate when required. - </action> - <action dev="markt" issue="DBCP-368" type="add"> - Expose the new Pool 2 property evictionPolicyClassName to enable more - sophisticated eviction strategies to be used. - </action> - <action dev="markt" issue="DBCP-406" type="add" due-to="Steeve Beroard"> - Add support for pooling PreparedStatements that use auto-generated keys. - </action> - <action dev="markt" issue="DBCP-180" type="fix"> - Enable JDBC resources that are no longer referenced by client code to be - eligible for garbage collection. - </action> - <action dev="markt" issue="DBCP-177" type="add"> - Enable DBCP to work with a SecurityManager such that only DBCP needs to - be granted the necessary permissions to communicate with the database. - </action> - <action dev="markt" issue="DBCP-410" type="fix" due-to="Andreas Sturmlechner"> - Correct path to Javadoc overview in build.xml. - </action> - <action dev="markt" issue="DBCP-234" type="fix"> - The default values for readOnly, autoCommit and transactionIsolation are - now taken from the JDBC driver. No calls to setReadOnly(), - setAutoCommit() or setTransactionIsolation() will be made for a newly - borrowed connection unless a default is explicitly configured and the - connection is currently using a different setting. - </action> - <action dev="markt" issue="DBCP-219" type="add"> - Register pooled connections with JMX so that they may be forcibly closed - via JMX if required. - </action> - <action dev="markt" issue="DBCP-373" type="add"> - Modify SharedPoolDataSource and PerUserPoolDataSource to expose all of - the configuration properties of the underlying connection pool(s). This - represents a significant refactoring of these classes and a number of - property names have changed as a result. - </action> - <action dev="markt" issue="DBCP-351" type="add"> - Provide an option to control if autoCommit is always set to true when a - connection is returned to the connection pool. - </action> - <action dev="markt" issue="DBCP-399" type="add"> - Provide an option to control if rollback is called when a connection is - returned to the poll with autoCommit disabled. - </action> - <action dev="markt" issue="DBCP-340" type="add"> - Provide an option to set the default query timeout. - </action> - <action dev="markt" type="fix"> - Connection.isValid() should not throw an SQLException if the connection - is closed. - </action> - <action dev="markt" issue="DBCP-357" type="fix"> - Use Connection.isValid() to validate connections unless a validation - query is explicitly configured. Note that this means it is no longer - necessary for a validation query to be specified in order for validation - to take place. When testing with Oracle, this resulted in database - validation being approximately 7 times faster. - </action> - <action dev="markt" issue="DBCP-249" type="add"> - Add support for validation testing database connections on creation. - </action> - </release> - <release version="1.5.1" date="not yet released" description="TBD"> - <action dev="markt" issue="DBCP-400" type="fix"> - Correct the documentation for the maxOpenPreparedStatements parameter - and review the use of the phrase non-positive throughout the - documentation and javadoc, replacing it with negative where that is the - correct definition to use. - </action> - <action dev="markt" issue="DBCP-405" type="fix"> - Avoid multiple calls to Connection.getAutoCommit() in - PoolableConnectionFactory.passivateObject() as it could be an expensive - call. - </action> - <action dev="markt" issue="DBCP-392" type="fix"> - Use one line per statement for methods with multiple statements rather - than using a single line. - </action> - <action dev="markt" issue="DBCP-396" type="fix"> - Expose all of the AbandonedConfig properties through a BasicDataSource. - </action> - <action dev="markt" issue="DBCP-380" type="fix" due-to="Balazs Zsoldos"> - Correct implementation of DelegatingConnection.isWrapperFor() so it - works correctly with older JDBC drivers. - </action> - <action dev="markt" issue="DBCP-347" type="fix" due-to="Robert Poskrobek"> - Correct implementation of DelegatingStatement.isWrapperFor(). Also fix - DelegatingDatabaseMetaData.isWrapperFor() and - DelegatingResultSet.isWrapperFor() that had the same problem. - </action> - <action dev="markt" issue="DBCP-341" type="fix" due-to="Ioannis Canellos"> - LocalXAConnectionFactory does not properly check if Xid is equal to - currentXid when resuming which may result in an XAException. - </action> - <action dev="markt" issue="DBCP-355" type="fix" due-to="Florent Guillaume"> - Ensure that the XAConnection is closed when the associated Connection is - closed. - </action> - <action dev="markt" issue="DBCP-398" type="fix"> - Clarify Jaavdoc for isClosed() method of PoolableConnection. - </action> - <action dev="markt" issue="DBCP-383" type="fix"> - Avoid NullPointerException and throw an XAException if an attempt is - made to commit the current transaction for a connection when no - transaction has been started. - </action> - <action dev="markt" issue="DBCP-372" type="fix"> - Using batchUpdate() should not invalidate the PreparedStatement when it - is returned to the pool. - </action> - <action dev="markt" issue="DBCP-309" type="fix"> - Improve documentation for JNDI example using BasicDataSource. - </action> - </release> - <release version="1.4.1" date="not yet released" description="TBD"> - <action dev="psteitz" issue="DBCP-334" type="update" due-to="Alberto Mozzone"> - Exposed GenericObjectPool's softMinEvictableIdleTimeMillis property for - configuration and use by BasicDataSource. - </action> - <action dev="psteitz" issue="DBCP-337" type="fix" due-to="Rob Gansevles"> - Made equals reflexive in DelegatingStatement (and subclasses), DelegatingMetaData, - DelegatingResultSet and PoolingDriver#PoolGuardConnectionWrapper. - </action> - <action dev="psteitz" issue="DBCP-342" type="fix" due-to="Byungchol Kim"> - Modified createDataSource method in BasicDataSource to ensure that GenericObjectPool - Evictor tasks are not started and orphaned when BasicDataSource encounters errors on - initialization. Prior to this fix, when minIdle and timeBetweenEvictionRunsMillis - are both positive, Evictors orphaned by failed initialization can continue to - generate database connection requests. This issue is duplicated by DBCP-339 - and DBCP-93. - </action> - <action dev="psteitz" issue="DBCP-330" type="fix"> - Changed DelegatingDatabaseMetaData to no longer add itself to the AbandonedTrace - of its parent connection. This was causing excessive memory consumption and was - not necessary, as resultsets created by DelegatingDatabaseMetaData instances are - attached to the parent connection's trace on creation. Also fixes DBCP-352. - </action> - <action dev="psteitz" issue="DBCP-343" type="fix"> - Modified execute methods of Statement objects to ensure that whenever - a statement is used, the lastUsed property of its parent connection is - updated. - </action> - <action dev="markt" issue="DBCP-333" type="fix"> - Correctly implemented the option to configure the class loader used to load - the JDBC driver. - </action> - <action dev="psteitz" issue="DBCP-346" type="update" due-to="Ken Tatsushita"> - LIFO configuration option has been added to BasicDataSource. When set - to true (the default), the pool acts as a LIFO queue; setting to false - causes connections to enter and exit to pool in FIFO order. - </action> - <action dev="psteitz" issue="DBCP-344" type="fix" due-to="Jeremy Whiting"> - Test transitive dependencies brought in by geronimo-transaction created - version conflicts (commons logging and junit). These have been explicitly - excluded in the POM. - </action> - <action dev="psteitz" issue="DBCP-348" type="fix" due-to="Eiji Takahashi"> - BasicDataSourceFactory incorrectly used "initConnectSqls" in versions - 1.3 and 1.4 of DBCP as the property name for connectionInitSqls. - Online docs for 1.3/1/4 have been updated to reflect this inconsistency. - The BasicDataSourceFactory property name has been changed to "connectInitSqls" - to match the online docs and the BasicDataSource property name. - </action> - </release> - <release version="1.4" date="2010-02-14" description="This release includes - new features as well as bug fixes and enhancements. Some bug fixes - change semantics (e.g. connection close is now idempotent). The 1.3 - and 1.4 releases of DBCP are built from the same sources. Version 1.4 - supports JDBC 4, so requires JDK 1.6. Applications running under - JDK 1.4-1.5 must use DBCP 1.3. Applications running under JDK 1.6 - should use DBCP 1.4. Other than support for the added methods in JDBC 4, - there is nothing new or different in DBCP 1.4 vs. DBCP 1.3. The list of - changes below since 1.2.2 applies to both the 1.3 and 1.4 release. Other than - the one issue related to adding JDBC 4 support (DBCP-191), all bug fixes - or new features are included in both DBCP 1.3 and 1.4 "> - <action dev="psteitz" type="fix" issue="DBCP-320"> - Eliminated poolKeys cache from PerUserPoolDataSource. - </action> - <action dev="sebb" type="fix" issue="DBCP-321"> - Eliminated userKeys LRUMap cache from SharedPoolDataSource. - </action> - <action dev="psteitz" type="fix" issue="DBCP-319" due-to="Sebastian Bazley"> - Made private fields final where possible. - </action> - <action dev="sebb" type="fix" issue="DBCP-318" due-to="Sebastian Bazley"> - PerUserPoolDataSource.getPooledConnectionAndInfo multi-threading bug. - </action> - <action dev="sebb" type="fix" issue="DBCP-315" due-to="Sebastian Bazley"> - Remove throws clause from method that does not throw an exception. - </action> - <action dev="sebb" type="fix" issue="DBCP-313" due-to="Sebastian Bazley"> - Remove code that catches and ignores Exceptions when calling - PooledConnection.removeConnectionEventListener(ConnectionEventListener) - as the method does not throw any Exceptions. - </action> - <action dev="sebb" type="fix" issue="DBCP-316" due-to="Sebastian Bazley"> - Remove impossible null check. - </action> - <action dev="sebb" type="update" issue="DBCP-314" due-to="Sebastian Bazley"> - Renamed variables with duplicate names in different scopes. - </action> - <action dev="psteitz" type="update" issue="DBCP-312" due-to="Glen Mazza"> - Clarified javadoc for BasicDataSource close() method. - </action> - <action dev="psteitz" type="add" issue="DBCP-204" due-to="Wei Chen"> - Made PoolingConnection pool CallableStatements. When BasicDataSource's - poolPreparedStatements property is true, CallableStatements are now - pooled along with PreparedStatements. The maxOpenPreparedStatements - property limits the combined number of Callable and Prepared statements - that can be in use at a given time. - </action> - <action dev="markt" type="update" issue="DBCP-305" due-to="Christopher Schultz"> - Use an API specific exception for logging abandoned objects to make - scanning the logs for these exceptions simpler and to provide a better - message that includes the creation time of the abandoned object. - </action> - <action dev="markt" type="fix" issue="DBCP-303" due-to="Dave Oxley"> - Ensure Statement.getGeneratedKeys() works correctly with the CPDS - adapter. - </action> - <action dev="psteitz" type="fix" issue="DBCP-302" due-to="Sebastian Bazley"> - Removed incorrectly advertised ClassNotFoundException from - JOCLContentHandler.ConstructorDetails.createObject(). - </action> - <action dev="markt" type="update" issue="DBCP-203" due-to="Mark Grand"> - Make the class loader used to load the JDBC driver configurable for the - BasicDatasource. - </action> - <action dev="markt" type="fix" issue="DBCP-8"> - Handle user password changes for InstanceKeyDataSources. - </action> - <action dev="psteitz" type="update" issue="DBCP-289" due-to="Marc Kannegießer"> - Made XADataSource configurable in BasicManagedDataSource. - </action> - <action dev="psteitz" type="fix" issue="DBCP-294" due-to="Philippe Mouawad"> - Added PoolableManagedConnection and PoolableManagedConnectionFactory so that - pooled managed connections can unregister themselves from transaction registries, - avoiding resource leaks. - </action> - <action dev="psteitz" type="update" issue="DBCP-276"> - Added connectionProperties property to DriverAdapterCPDS. - </action> - <action dev="psteitz" type="add" issue="DBCP-226"> - Added a validationQueryTimeout configuration parameter to BasicDataSource - allowing the user to specify a timeout value (in seconds) for connection - validation queries. - </action> - <action dev="psteitz" type="add" issue="DBCP-175" due-to="Jiri Melichna and Jerome Lacoste"> - Added a connectionInitSqls configuration parameter to BasicDataSource - allowing the user to specify a collection of SQL statements to execute - one time when a physical database connection is first opened. - </action> - <action dev="markt" type="fix" issue="DBCP-212"> - PoolableConnectionFactory.makeObject() is no longer synchronized. This - provides improved response times when load spikes at the cost of a - faster rise in database server load. This change was made as a partial - fix for DBCP-212. The synchronization changes in Commons Pool 1.5 complete - the fix for this issue. - </action> - <action dev="psteitz" type="fix" issue="DBCP-242"> - Reverted DelegatingConnection close to 1.2.2 version to ensure - open statements are closed before the underlying connection is closed. - </action> - <action dev="markt" type="fix" issue="DBCP-235"> - Refactor DelegatingConnection and ManagedConnection enable overridden - equals() and hashcode() to work correctly. - </action> - <action dev="markt" type="update" issue="DBCP-265"> - Add a DelegatingDatabaseMetaData to track ResultSets returned from - DatabaseMetaData objects. - </action> - <action dev="markt" type="fix" issue="DBCP-215"> - Modified BasicDataSourceFactory to complete initialization of the pool - by creating initialSize connections rather than leaving this to lazy - initialization when the pool is used. - </action> - <action dev="markt" type="fix" issue="DBCP-253"> - Eliminated masked _stmt field in descendents of DelegatingStatement. - </action> - <action dev="markt" type="fix" issue="DBCP-191" due-to="Michael Heuer and J. David Beutel" > - Modified DBCP sources to support compilation under JDK 1.4-1.6 - using Ant flags to do conditional compilation. - </action> - <action dev="markt" type="fix" issue="DBCP-272"> - Added a static initializer to BasicDatasource that calls - DriverManager.getDrivers() to force initialization before we ever do - anything that might use Class.forName() to load (and register) a JDBC - driver. - </action> - <action dev="markt" type="fix" issue="DBCP-4"> - Eliminated direct System.out calls in AbandonedTrace. - </action> - <action dev="niallp" type="fix" issue="DBCP-264"> - Modified DelegatingStatement close to clear open batches. - </action> - <action dev="psteitz" type="fix" issue="DBCP-255"> - Eliminated unused private "parent" field in AbandonedTrace. - </action> - <action dev="psteitz" type="fix" issue="DBCP-273" due-to="Mark Lin"> - Fixed errors handling boolean-valued Reference properties in - InstanceKeyObjectFactory, DriverAdapterCPDS that were causing - testOnBorrow and poolPreparedStatements properties to be incorrectly - set when creating objects from javax.naming.Reference instances. - </action> - <action dev="psteitz" type="fix" issue="DBCP-271" due-to="Sebastian Bazley"> - Made private instance fields of AbandonedTrace volatile (parent, - createdBy, lastUsed, createdTime) or final (trace). - </action> - <action dev="psteitz" type="fix" issue="DBCP-270" due-to="Filip Hanik"> - Narrowed synchronization in AbandonedTrace to resolve an Evictor deadlock. - </action> - <action dev="bayard" type="fix" issue="DBCP-218"> - Corrected Javadoc to state that getLoginTimeout and setLoginTimeout are - NOT supported by BasicDataSource. - </action> - <action dev="bayard" type="update" issue="DBCP-211"> - Added Maven 2 pom.xml. Removed a block of code from TestJOCLed that set - the Xerces parser manually. This was to support early JDKs. The 1.3 - version of DBCP requires JDK 1.4+. - </action> - <action dev="psteitz" type="add" issue="DBCP-228" due-to="Dain Sundstrom"> - Added support for pooling managed connections. - </action> - <action dev="psteitz" type="add" issue="DBCP-230" due-to="Dain Sundstrom"> - Added BasicManagedDataSource, extending BasicDataSource. - Also improved extensibility of BasicDataSource by encapsulating - methods to create object pool, connection factory and datasource - instance previously embedded in createDataSource. - </action> - <action dev="psteitz" type="update" issue="DBCP-233" due-to="Dain Sundstrom"> - Changed behavior to allow Connection, Statement, PreparedStatement, - CallableStatement and ResultSet to be closed multiple times. The first - time close is called the resource is closed and any subsequent calls - have no effect. This behavior is required as per the Javadocs for these - classes. Also added tests for closing all types multiple times and - updated any tests that incorrectly assert that a resource can not be - closed more then once. Fixes DBCP-3, DBCP-5, DBCP-23 and DBCP-134. - </action> - <action dev="psteitz" type="update" issue="DBCP-11" due-to="Dain Sundstrom"> - Modified PoolingDataSource, PoolingDriver and DelegatingStatement to - assure that all returned Statements, PreparedStatements, - CallableStatements and ResultSets are wrapped with a delegating object, - which already properly handle the back pointers for Connection and - Statement. Also added tests to to assure that the *same* object used - to create the statement or result set is returned from either - getConnection() or getStatement(). - </action> - <action dev="dain" type="update" issue="DBCP-143"> - SQLNestedException has been deprecated and will be replaced in DBCP 2.0 with - SQLException and standard Java exception chaining. - </action> - <action dev="dain" type="fix" issue="DBCP-221"> - BasicDataSource.close() now permanently marks the data source as closed, - and no new connections can be obtained from the data source. At close all - idle connections are destroyed and the method returns. As the remaining - active connections are closed, they are destroyed. - </action> - <action dev="psteitz" type="fix" issue="DBCP-241"> - Eliminated potential sources of NullPointerExceptions in - PoolingConnection. - </action> - <action dev="psteitz" type="fix" issue="DBCP-216" due-to="Marcos Sanz"> - Improved error recovery and listener cleanup in - KeyedCPDSConnectionFactory. Substituted calls to destroyObject with - _pool.invalidateObject on error to ensure pool active count is - decremented on error events. Ensured that events from closed or invalid - connections are ignored and listeners are cleaned up. - </action> - <action dev="psteitz" type="fix" issue="DBCP-245" due-to="Michael Drechsel"> - Fixed error in SharedPoolDataSource causing incorrect passwords to be - stored under certain conditions. - </action> - <action dev="psteitz" type="fix" issue="DBCP-237" due-to="Oliver Matz"> - Added exception handler to ensure that PooledConnections are not - orphaned when an exception occurs in setUpDefaults or clearWarnings in - InstanceKeyDataSource.getConnection. - </action> - <action dev="psteitz" type="fix" issue="DBCP-252" due-to="FindBugs"> - Made getPool synchronized in PoolableConnectionFactory. - Fixes inconsistent synchronization accessing _pool. - </action> - <action dev="psteitz" type="fix" issue="DBCP-252" due-to="FindBugs"> - Fixed inconsistent synchronization on _rollbackAfterValidation, - _validationQuery and _pool in CPDSConnectionFactory and - KeyedCPDSConnectionFactory by making the first two volatile and making - both getter and setter for _pool synchronized. - </action> - </release> - <release version="1.3" date="2010-02-14" description="Compatability release for JDBC 3. - See version 1.4 description and change log."> - <action type="update"> - See <a href="changes-report.html#a1.4">DBCP 1.4 Changes </a> for details. Version - 1.3 is identical to 1.4, other than JDBC 4 methods being filtered out of the DBCP 1.3 sources. Changes - Since 1.2.2 are the same for 1.3 and 1.4. - </action> - </release> - <release version="1.2.2" date="2007-04-04" - description="This is a maintenance release containing bug fixes - and enhancements. All API changes are binary compatible with version 1.2.1."> - <action dev="dirkv " type="add"> - Add a <i>JNDI How To</i> to the User Guide. - </action> - <action dev="dirkv " type="fix" issue="DBCP-108" due-to="Maxwell Grender-Jones"> - DriverManagerConnectionFactory: blank user name and password handling. - </action> - <action dev="dirkv " type="fix" issue="DBCP-113" due-to="Rohan Lenard"> - Broken behaviour for BasicDataSource.setMaxActive(0). - </action> - <action dev="dirkv " type="fix" issue="DBCP-36" due-to="Jonathan Whitall"> - BasicDataSource does not work with getConnection(String, String). - </action> - <action dev="dirkv " type="update" issue="DBCP-164" due-to="Todd Carmichael"> - Enhancements to prepared statement in DriverAdapterCPDS. - </action> - <action dev="yoavs" type="update" issue="DBCP-186" due-to="Ralf Hauser"> - Better messages and docs for LoginTimeout UnsupportedOperationException. - </action> - <action dev="yoavs" type="fix" issue="DBCP-50" due-to="Nicky Nicolson"> - Error in JOCL snippet in org.apache.commons.dbcp package javadoc. - </action> - <action dev="yoavs" type="update" issue="DBCP-165" due-to="QM"> - Added toString() methods to DelegatingPreparedStatement and DelegatingStatement - </action> - <action dev="yoavs" type="fix"> - Changes to make DBCP compile on JDK 1.5 by adding source="1.4" to compiler - arguments (there are compiler errors in JDK 5.0 without this source switch - that cannot be fixed without JDK 5.0-specific syntax). - </action> - <action dev="dirkv " type="fix" issue="DBCP-20" due-to="Chris Nappin"> - Per-user pooling with Oracle driver and default isolation settings. - </action> - <action dev="dirkv " type="fix" issue="DBCP-9" due-to="Adrian Baker"> - Error in JOCL document in javadoc. - </action> - <action dev="sullis" type="update"> - Added toString() method to DelegatingConnection. - </action> - <action dev="dirkv " type="update" issue="DBCP-181" due-to="Meikel Bisping"> - Add DriverManager.invalidateConnection(). - </action> - <action dev="dirkv " type="fix" issue="DBCP-184" due-to="Meikel Bisping"> - Improved Exception nesting in ConnectionPool. - </action> - <action dev="dennisl" type="fix" issue="DBCP-144" due-to="Sebb"> - Fix broken website links for examples. - </action> - <action dev="psteitz" type="fix" issue="DBCP-28" - due-to="Huw Lewis, James Ring"> - Modified PoolableConnection close method to invalidate instance - when invoked on an already closed connection. - </action> - <action dev="joehni" type="fix" issue="DBCP-81"> - Inserted null checks to avoid NPE in close operations. - </action> - <action dev="psteitz" type="fix" issue="DBCP-105" - due-to="Sandy McArthur, Thomas Fischer"> - Changed getReference method in InstanceKeyDataSource to return a - concrete factory and added implementations of getReference in concrete - subclasses. - </action> - <action dev="psteitz" type="fix" issue="DBCP-39" due-to="Jindrich Vimr"> - Inserted null check in close method of SharedPoolDataSource to avoid - NPE when invoked on non-initialized pool. - </action> - <action dev="psteitz" type="fix" issue="DBCP-71" due-to="Douglas Squirrel"> - Document fact that true values for testOnBorrow, testOnReturn, testWhileIdle - only have effect when validationQuery is set to a non-null string. - </action> - <action dev="psteitz" type="fix" issue="DBCP-102"> - Modified activateObject in PoolableConnection to test connection - properties before resetting to defaults. - </action> - <action dev="sandymac" type="fix" issue="DBCP-188"> - Corrected maxActive documentation in configuration.html. - </action> - <action dev="psteitz" type="update"> - Upgraded dependency to Pool 1.3. - </action> - <action dev="psteitz" type="update" issue="DBCP-187" due-to="Ralf Hauser"> - Added connection info to SQLException messages when closed connections - (resp stmts) are accessed in DelegatingConnection, DelegatingStatement. - </action> - <action dev="psteitz" type="fix" issue="DBCP-41" due-to="Anton Tagunov"> - Fixed errors in pool parameter documentation and made - 0 value for _maxPreparedStatements in DriverAdapterCPDS behave - like a negative value, to be consistent with documentation - and pool behavior. - </action> - <action dev="psteitz" type="fix" issue="DBCP-100"> - Made userKeys an instance variable (i.e., not static) - in SharedPoolDataSource. - </action> - <action dev="psteitz" type="fix" issue="DBCP-198"> - Changed implementation of equals in - PoolingDataSource.PoolGuardConnectionWrapper - to ensure it is reflexive, even when wrapped connections are not - DelegatingConnections. - </action> - <action dev="psteitz" type="update" issue="DBCP-116" due-to="Thomas Fischer"> - Added rollbackAfterValidation property and code to issue a rollback on a - connection after validation when this property is set to true to eliminate - Oracle driver exceptions. Default property value is false. - </action> - <action dev="psteitz" type="update" issue="DBCP-68"> - Removed dependency on Commons Collections by adding collections - 2.1 sources for LRUMap and SequencedHashMap with package scope to - datasources package. - </action> - <action dev="psteitz" type="fix" issue="DBCP-65"> - Removed synchronization from prepareStatement methods in - PoolingConnection. Synchronization in these methods was causing - deadlocks. No resources other than the prepared statement pool are - accessed by these methods, and the pool methods are synchronized. - Also fixes DBCP-202. - </action> - </release> - - <release version="1.2.1" date="2004-06-12" description="Maintenance Release to restore JDK 1.3 compatibility"> - <action type="fix"> - See <a href="release-notes-1.2.1.html">DBCP 1.2.1 Release Notes</a> for details. - </action> - </release> - - <release version="1.2" date="2004-06-07"> - <action type="update"> - See <a href="release-notes-1.2.html">DBCP 1.2 Release Notes</a> for details. - </action> - </release> - - <release version="1.1" date="2003-10-20"> - <action type="update"> - See <a href="release-notes-1.1.html">DBCP 1.1 Release Notes</a> for details. - </action> - </release> - - <release version="1.0" date="2002-08-12" description="Initial Release"> - <action type="add"> - Initial Release - </action> - </release> - - </body> -</document> +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + 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. +--> + +<!-- +This file is used by the maven-changes-plugin to generate the release notes. +Useful ways of finding items to add to this file are: + +1. Add items when you fix a bug or add a feature (this makes the +release process easy :-). + +2. Do a bugzilla search for tickets closed since the previous release. + +3. Use the report generated by the maven-changelog-plugin to see all +SVN commits. Set the project.properties' maven.changelog.range +property to the number of days since the last release. + +To generate the release notes from this file: + +mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn] + +then tweak the formatting if necessary +and commit + +The <action> type attribute can be add,update,fix,remove. +--> + +<document> + <properties> + <title>Commons DBCP Release Notes</title> + </properties> + <!-- NOTE: + The description below is specially formatted so as to improve the layout of the generated release notes: + The parsing process removes all line feeds, replacing them with a single space. + The Velocity template in src/changes has been enhanced to replace pairs of adjacent spaces + with a new-line in the release notes. (These spaces are ignored when displaying HTML). + If the output is not quite correct, check for invisible trailing spaces! + + N.B. The release notes template groups actions by type, and only extracts data for the current release. + The changes report outputs actions in the order they appear in this file. + + To regenerate the release notes: + mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn] + + Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix. + --> + + <body> + <release version="2.6.1" date="2019-MM-DD" description="This is a minor release, including bug fixes and enhancements."> + <action dev="jleroux" type="add" issue="DBCP-539" due-to="Jacques Le Roux"> + ManagedDataSource::close should declare used exceptions. + </action> + <action dev="ggregory" type="add" issue="DBCP-538" due-to="Ragnar Haugan, Gary Gregory"> + Wrong JMX base name derived in BasicDataSource#updateJmxName. + </action> + <action dev="ggregory" type="add" due-to="Gary Gregory"> + Update tests from H2 1.4.198 to 1.4.199. + </action> + </release> + <release version="2.6.0" date="2019-02-14" description="This is a minor release, including bug fixes and enhancements."> + <action dev="chtompki" type="add" issue="DBCP-534" due-to="Peter Wicks"> + Allow for manual connection eviction. + </action> + <action dev="ggregory" type="add" issue="DBCP-514" due-to="Tom Jenkinson, Gary Gregory"> + Allow DBCP to register with a TransactionSynchronizationRegistry for XA cases. + </action> + <action dev="ggregory" type="update" issue="DBCP-517" due-to="Gary Gregory"> + Make defensive copies of char[] passwords. + </action> + <action dev="ggregory" type="update" issue="DBCP-515" due-to="Tom Jenkinson, Gary Gregory"> + Do not try to register synchronization when the transaction is no longer active. + </action> + <action dev="ggregory" type="update" issue="DBCP-516" due-to="Tom Jenkinson, Gary Gregory"> + Do not double returnObject back to the pool if there is a transaction context with a shared connection. + </action> + <action dev="ggregory" type="fix" issue="DBCP-518" due-to="Gary Gregory"> + Allow DBCP to work with old Java 6/JDBC drivers without throwing AbstractMethodError. + </action> + <action dev="ggregory" type="add" issue="DBCP-519" due-to="Gary Gregory"> + Add some toString() methods for debugging (never printing passwords.) + </action> + <action dev="ggregory" type="update" issue="DBCP-520" due-to="Zheng Feng"> + BasicManagedDataSource needs to pass the TSR with creating DataSourceXAConnectionFactory. + </action> + <action dev="ggregory" type="add" issue="DBCP-527" due-to="Gary Gregory"> + Add getters to some classes. + </action> + <action dev="ggregory" type="add" issue="DBCP-528" due-to="Gary Gregory"> + org.apache.commons.dbcp2.DriverManagerConnectionFactory should use a char[] instead of a String to store passwords. + </action> + <action dev="ggregory" type="update" issue="DBCP-537" due-to="Gary Gregory"> + Update Apache Commons Pool from 2.6.0 to 2.6.1. + </action> + </release> + <release version="2.5.0" date="2018-07-15" description="This is a minor release, including bug fixes and enhancements."> + <action dev="ggregory" type="update" issue="DBCP-505" due-to="Gary Gregory"> + Update Java requirement from version 7 to 8. + </action> + <action dev="ggregory" type="add" issue="DBCP-506" due-to="Gary Gregory"> + Support JDBC 4.2. + </action> + <action dev="ggregory" type="add" issue="DBCP-479" due-to="Guillaume Husta, Gary Gregory"> + Support default schema in configuration. + </action> + <action dev="ggregory" type="update" issue="DBCP-427" due-to="Vladimir Konkov, Phil Steitz, Gary Gregory"> + Examines 'SQLException's thrown by underlying connections or statements for fatal (disconnection) errors. + </action> + <action dev="ggregory" type="update" issue="DBCP-507" due-to="Vladimir Konkov, Phil Steitz, Gary Gregory"> + Change default for fail-fast connections from false to true. + </action> + <action dev="ggregory" type="fix" issue="DBCP-508" due-to="Gary Gregory"> + Prepared statement keys should take a Connection's schema into account. + </action> + <action dev="ggregory" type="update" issue="DBCP-504" due-to="Bruno P. Kinoshita"> + Increase test coverage. + </action> + <action dev="ggregory" type="update" issue="DBCP-510" due-to="Gary Gregory"> + Update Apache Commons Pool from 2.5.0 to 2.6.0. + </action> + <action dev="ggregory" type="fix" issue="DBCP-512" due-to="Gary Gregory"> + Avoid exceptions when closing a connection in mutli-threaded use case. + </action> + </release> + <release version="2.4.0" date="2018-06-12" description="This is a minor release, including bug fixes and enhancements."> + <action dev="ggregory" type="fix" issue="DBCP-484" due-to="Emanuel Freitas"> + Connection leak during XATransaction in high load. + </action> + <action dev="ggregory" type="update" issue="DBCP-492" due-to="Gary Gregory"> + Drop Ant build. + </action> + <action dev="ggregory" type="update" issue="DBCP-491" due-to="Zheng Feng, Gary Gregory"> + Ensure DBCP ConnectionListener can deal with transaction managers which invoke rollback in a separate thread. + </action> + <action dev="ggregory" type="update" issue="DBCP-494" due-to="Gary Gregory"> + org.apache.commons.dbcp2.PStmtKey should make copies of given arrays in constructors. + </action> + <action dev="ggregory" type="update" issue="DBCP-495" due-to="Gary Gregory"> + Remove duplicate code in org.apache.commons.dbcp2.cpdsadapter.PStmtKeyCPDS. + </action> + <action dev="ggregory" type="fix" issue="DBCP-496" due-to="Gary Gregory"> + Add support for pooling CallableStatements to the org.apache.commons.dbcp2.cpdsadapter package. + </action> + <action dev="ggregory" type="update" issue="DBCP-497" due-to="Gary Gregory"> + Deprecate use of PStmtKeyCPDS in favor of PStmtKey. + </action> + <action dev="ggregory" type="update" issue="DBCP-498" due-to="Gary Gregory"> + org.apache.commons.dbcp2.DataSourceConnectionFactory should use a char[] instead of a String to store passwords. + </action> + <action dev="ggregory" type="update" issue="DBCP-499" due-to="Gary Gregory"> + org.apache.commons.dbcp2.managed.DataSourceXAConnectionFactory should use a char[] instead of a String to store passwords. + </action> + <action dev="ggregory" type="update" issue="DBCP-500" due-to="Gary Gregory"> + org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS should use a char[] instead of a String to store passwords. + </action> + <action dev="ggregory" type="update" issue="DBCP-501" due-to="Gary Gregory"> + org.apache.commons.dbcp2.datasources.CPDSConnectionFactory should use a char[] instead of a String to store passwords. + </action> + <action dev="ggregory" type="update" issue="DBCP-502" due-to="Gary Gregory"> + org.apache.commons.dbcp2.datasources internals should use a char[] instead of a String to store passwords. + </action> + <action dev="ggregory" type="update" issue="DBCP-503" due-to="Gary Gregory"> + org.apache.commons.dbcp2.datasources.InstanceKeyDataSourceFactory.closeAll() does not close all. + </action> + </release> + <release version="2.3.0" date="2018-05-12" description="This is a minor release, including bug fixes and enhancements."> + <action dev="pschumacher" type="fix" issue="DBCP-476" due-to="Gary Evesson, Richard Cordova"> + AbandonedTrace.getTrace() contains race condition. + </action> + <action dev="ggregory" type="fix" issue="DBCP-482" due-to="Dennis Lloyd, Gary Gregory"> + Avoid javax.management.InstanceNotFoundException on shutdown when a bean is not registered. Closes #9. + </action> + <action dev="ggregory" type="update" issue="DBCP-483" due-to="Gary Gregory"> + Make constant public: org.apache.commons.dbcp2.PoolingDriver.URL_PREFIX. + </action> + <action dev="ggregory" type="update" issue="DBCP-486" due-to="Gary Gregory"> + DriverAdapterCPDS.setUser(), setPassword(), and getPooledConnection() with null arguments throw NullPointerExceptions when connection properties are set. + </action> + <action dev="ggregory" type="update" issue="DBCP-487" due-to="Gary Gregory"> + Add API org.apache.commons.dbcp2.datasources.PerUserPoolDataSource.clear(). + </action> + <action dev="ggregory" type="update" issue="DBCP-488" due-to="Gary Gregory"> + NPE for org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS.setConnectionProperties(null). + </action> + <action dev="ggregory" type="update" issue="DBCP-490" due-to="Gary Gregory"> + The method org.apache.commons.dbcp2.PoolingDriver.getConnectionPool(String) does not tell you which pool name is not registered when it throws an exception. + </action> + </release> + <release version="2.2.0" date="2017-12-27" description="This is a minor release, including bug fixes and enhancements."> + <action dev="ggregory" type="fix" issue="DBCP-481" due-to="Gary Gregory"> + Update Apache Commons Pool from 2.4.2 to 2.5.0. + </action> + <action dev="mattsicker" type="fix" issue="DBCP-454" due-to="Philipp Marx, Matt Sicker"> + OSGi declarations contain multiple import headers for javax.transaction. + </action> + <action dev="ggregory" type="fix" issue="DBCP-478" due-to="nicola mele"> + Wrong parameter name in site documentation for BasicDataSource Configuration Parameters. + </action> + <action dev="psteitz" type="fix" issue="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. + </action> + <action dev="ggregory" type="fix" issue="DBCP-446" due-to="Gary Gregory, feng yang, Euclides M, Phil Steitz"> + NullPointerException thrown when calling ManagedConnection.isClosed(). + </action> + <action dev="psteitz" type="fix" issue="DBCP-444"> + InvalidateConnection can result in closed connection returned by getConnection. + </action> + <action dev="ggregory" type="fix" issue="DBCP-449" due-to="Grzegorz D."> + Complete the fix for DBCP-418, enabling PoolableConnection class to load in environments + (such as GAE) where the JMX ManagementFactory is not available. + </action> + <action dev="ggregory" type="add" issue="DBCP-451"> + Add constructor DriverManagerConnectionFactory(String). + </action> + <action dev="markt" type="fix" issue="DBCP-455" due-to="Kyohei Nakamura"> + Ensure that the cacheState setting is used when statement pooling is + disabled. + </action> + <action dev="markt" type="fix" issue="DBCP-453" due-to="Philipp Marx"> + Ensure that setSoftMinEvictableIdleTimeMillis is used when working with + BasicDataSource. + </action> + <action dev="markt" type="fix" issue="DBCP-456" due-to="Kyohei Nakamura"> + Correct the name of the configuration attribute + softMinEvictableIdleTimeMillis. + </action> + <action dev="markt" type="fix" issue="DBCP-472"> + Avoid potential infinite loops when checking if an SQLException is fatal + for a connection or not. + </action> + <action dev="markt" type="fix" issue="DBCP-468"> + Expand the fail-fast for fatal connection errors feature to include + managed connections. + </action> + <action dev="markt" type="fix" issue="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. + </action> + <action dev="markt" type="add" issue="DBCP-462" due-to="Keiichi Fujino"> + Refactoring to prepare for a future patch to enable pooling of all + prepared and callable statements in PoolingConnection. + </action> + <action dev="markt" type="fix" issue="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(). + </action> + <action dev="markt" type="add" issue="DBCP-458" due-to="Adrian Tarau"> + Make it simpler to extend BasicDataSource to allow sub-classes to + provide custom GenericObjectPool implementations. + </action> + <action dev="markt" type="fix" issue="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. + </action> + <action dev="markt" type="add" issue="DBCP-474" due-to="Keiichi Fujino"> + Enable pooling of all prepared and callable statements + inPoolingConnection. + </action> + </release> + <release version="2.1.1" date="6 Aug 2015" description= +"This is a patch release, including bug fixes only."> + <action dev="psteitz" type="update"> + 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. + </action> + <action issue="DBCP-441" dev="psteitz" type="fix"> + Added BasicDataSource abandonedUsageTracking property missing from BasicDataSourceFactory. + </action> + <action issue="DBCP-442" dev="psteitz" type="fix"> + SharedPoolDataSource getConnection fails when testOnBorrow is set with + a null validation query. + </action> + <action issue="DBCP-438" dev="psteitz" type="fix" due-to="Raihan Kibria"> + Nested connections in a transaction (local) throws null pointer. + </action> + <action issue="DBCP-437" dev="psteitz" type="fix"> + BasicDataSource does not set disconnectionSql properties on its PoolableConnectionFactory. + </action> + </release> + <release version="2.1" date="23 Feb 2015" description= + "This is minor release, including bug fixes and enhancements. Note that + one of the enhancements (DBCP-423) is to implement AutoCloseable in + BasicDataSource, PoolingDataSource and the InstanceKeyDataSource + implementations. + "> + <action issue="DBCP-420" dev="sebb" type="fix"> + InstanceKeyDataSource discards native SQLException when given password does not match + password used to create the connection. + </action> + <action issue="DBCP-422" dev="ggregory" type="update"> + Update Apache Commons Logging to 1.2 from 1.1.3. + </action> + <action dev="markt" type="fix"> + Correct some Javadoc references to Apache Commons Pool 2 classes that + have changed names since Pool 1.x. + </action> + <action dev="markt" type="fix"> + Do not ignore the configured custom eviction policy when creating a + BasicDataSource. + </action> + <action dev="psteitz" type="add" issue="DBCP-426" due-to="Kasper Sørensen"> + Added invalidateConnection method to BasicDataSource. + </action> + <action issue="DBCP-428" dev="psteitz" type="fix" due-to="Vladimir Konkov"> + Unsuccessful Connection enlistment in XA Transaction ignored by TransactionContext. + </action> + <action issue="DBCP-424" dev="psteitz" type="update"> + Made expired connection logging configurable in BasicDataSource. Setting + logExpiredConnections to false suppresses expired connection log messages. + </action> + <action issue="DBCP-423" dev="psteitz" type="update"> + Made Datasources implement AutoCloseable. + </action> + <action issue="DBCP-427" dev="psteitz" type="add" due-to="Vladimir Konkov"> + Added fastFailValidation property to PoolableConnection, configurable in + BasicDataSource. When set to true, connections that have previously thrown + fatal disconnection errors will fail validation immediately (no driver calls). + </action> + <action issue="DBCP-432" dev="psteitz" type="fix"> + Changed BasicDataSource createDataSource method to ensure that initialization + completes before clients get reference to newly created instances. + </action> + <action issue="DBCP-433" dev="psteitz" type="fix" due-to="Vladimir Konkov"> + Fixed connection leak when SQLException is thrown while enlisting an XA + transaction. + </action> + <action issue="DBCP-434" dev="psteitz" type="fix"> + Setting jmxName to null should suppress JMX registration of connection + and statement pools. + </action> + <action dev="psteitz" type="update"> + Eliminated synchronization in BasicDataSource getNumActive, getNumIdle methods. + </action> + <action issue="DBCP-435" type="update" due-to="Denixx Baykin"> + Added property name verification to BasicDataSourceFactory. References including + obsolete or unrecognized properties now generate log messages. + </action> + </release> + <release version="2.0.1" date="24 May 2014" description="This is a bug fix release."> + <action dev="markt" type="fix"> + Small performance improvements when returning connections to the pool. + </action> + <action issue="DBCP-414" dev="markt" type="fix" due-to="Pasi Eronen"> + 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. + </action> + <action issue="DBCP-412" dev="psteitz" type="update"> + Added check in PoolingDataSource constructor to ensure that the connection factory + and pool are properly linked. + </action> + <action issue="DBCP-417" dev="psteitz" type="fix"> + Fixed connection leak when managed connections are closed during transactions. + </action> + <action issue="DBCP-418" dev="psteitz" type="fix"> + Enable PoolableConnection class to load without JMX. + </action> + </release> + <release version="2.0" date="3 March 2014" description= +"This release includes new features as well as bug fixes and enhancements. + Version 2.0.x supports JDBC 4.1, so requires Java 7. + + The Java package name has been changed from 'org.apache.commons.dbcp' to 'org.apache.commons.dbcp2'. + Also the Maven groupId is now 'org.apache.commons' and the artifactId is 'commons-dbcp2' + These changes are necessary because the API is not strictly binary compatible with the 1.x releases. + To convert from the earlier releases, update the package name in imports, update the dependencies and recompile. + There may be a few other changes to be made. + + Applications running under Java 7 should use DBCP 2.0.x. + Java 6 users should use DBCP 1.4.x which supports JDBC 4. + Java 1.4 and Java 5 users should use DBCP 1.3.x which supports JDBC 3. + "> + <action issue="DBCP-411" dev="sebb" type="fix"> + BasicManagedDataSource - unregister from JMX on close(). + </action> + <action issue="DBCP-154" dev="markt" type="fix"> + Log validation failures of poolable connections. + </action> + <action issue="DBCP-403" dev="sebb" type="fix"> + DelegatingStatement.close() fails with NPE if statement is null + </action> + <action issue="DBCP-322" dev="sebb" type="fix"> + CPDSConnectionFactory.validateObject(Object) ignores Throwable. + </action> + <action dev="markt" type="add"> + Provide a new option (cacheState) to cache current values of autoCommit + and readOnly so database queries are not required for every call to the + associated getters. This option is enabled by default. + </action> + <action dev="markt" issue="DBCP-300" type="fix"> + Removed unnecessary synchronisation in BasicDataSource#createDataSource. + </action> + <action dev="markt" type="update"> + The Java package name has been changed from org.apache.commons.dbcp to + org.apache.commons.dbcp2. + </action> + <action dev="markt" type="update"> + Update to Commons Pool 2 (based on java.util.concurrent) to provide + pooling functionality. + </action> + <action dev="markt" type="update"> + Updated source code for Java 1.6 (added @Override & @Deprecated + annotations). + </action> + <action dev="markt" type="update"> + Removed JOCL support. + </action> + <action dev="markt" issue="DBCP-143" type="update"> + Remove deprecated SQLNestedException. + </action> + <action dev="markt" issue="DBCP-384" type="fix"> + Fix threading issues with accessToUnderlyingConnectionAllowed attribute + of PoolingDriver which is used to support unit testing. + </action> + <action dev="markt" issue="DBCP-292" type="add"> + BasicDataSource instances are now exposed via JMX. All the configuration + properties are available as is the connection pool and the statement + pools (if statement pooling is enabled). + </action> + <action dev="markt" issue="DBCP-376" type="fix" due-to="Dave Oxley"> + Fix thread safety issues in the SharedPoolDataSource and the + PerUserPoolDataSource. + </action> + <action dev="markt" issue="DBCP-382" type="fix" due-to="Stefan Rempfer"> + Allow accessToUnderlyingConnectionAllowed to be configured when + configuration takes place via JNDI in a JavaEE container. + </action> + <action dev="markt" issue="DBCP-369" type="fix" due-to="Michael Pradel"> + Fix threading issue when using multiple instances of the + SharedPoolDataSource concurrently. + </action> + <action dev="markt" issue="DBCP-391" type="fix"> + Ensure that the close state of a pooled connection and the underlying + connection is consistent when the underlying connection is closed as a + result of an error condition. + </action> + <action dev="markt" issue="DBCP-404" type="fix"> + Make all mutable fields private. + </action> + <action dev="markt" issue="DBCP-364" type="fix"> + Return BasicDataSource rather than DataSource from + BasicDataSourceFactory so a cast is not required to use BasicDataSource + specific methods. + </action> + <action dev="markt" issue="DBCP-358" type="fix"> + The equals() implementations of the DelegatingXxx classes are now + symmetric. There are some important API changes underlying this fix. + Firstly, two DelegatingXxx instances are no longer considered equal if + they have the same innermost delegate. Secondly, a DelegatingXxx + instance is not considered equal to its innermost delegate. The + getInnermostDelegateInternal() method has been made public (but remains + part of the internal API) to allow classes extending this implementation + to access the innermost delegate when required. + </action> + <action dev="markt" issue="DBCP-368" type="add"> + Expose the new Pool 2 property evictionPolicyClassName to enable more + sophisticated eviction strategies to be used. + </action> + <action dev="markt" issue="DBCP-406" type="add" due-to="Steeve Beroard"> + Add support for pooling PreparedStatements that use auto-generated keys. + </action> + <action dev="markt" issue="DBCP-180" type="fix"> + Enable JDBC resources that are no longer referenced by client code to be + eligible for garbage collection. + </action> + <action dev="markt" issue="DBCP-177" type="add"> + Enable DBCP to work with a SecurityManager such that only DBCP needs to + be granted the necessary permissions to communicate with the database. + </action> + <action dev="markt" issue="DBCP-410" type="fix" due-to="Andreas Sturmlechner"> + Correct path to Javadoc overview in build.xml. + </action> + <action dev="markt" issue="DBCP-234" type="fix"> + The default values for readOnly, autoCommit and transactionIsolation are + now taken from the JDBC driver. No calls to setReadOnly(), + setAutoCommit() or setTransactionIsolation() will be made for a newly + borrowed connection unless a default is explicitly configured and the + connection is currently using a different setting. + </action> + <action dev="markt" issue="DBCP-219" type="add"> + Register pooled connections with JMX so that they may be forcibly closed + via JMX if required. + </action> + <action dev="markt" issue="DBCP-373" type="add"> + Modify SharedPoolDataSource and PerUserPoolDataSource to expose all of + the configuration properties of the underlying connection pool(s). This + represents a significant refactoring of these classes and a number of + property names have changed as a result. + </action> + <action dev="markt" issue="DBCP-351" type="add"> + Provide an option to control if autoCommit is always set to true when a + connection is returned to the connection pool. + </action> + <action dev="markt" issue="DBCP-399" type="add"> + Provide an option to control if rollback is called when a connection is + returned to the poll with autoCommit disabled. + </action> + <action dev="markt" issue="DBCP-340" type="add"> + Provide an option to set the default query timeout. + </action> + <action dev="markt" type="fix"> + Connection.isValid() should not throw an SQLException if the connection + is closed. + </action> + <action dev="markt" issue="DBCP-357" type="fix"> + Use Connection.isValid() to validate connections unless a validation + query is explicitly configured. Note that this means it is no longer + necessary for a validation query to be specified in order for validation + to take place. When testing with Oracle, this resulted in database + validation being approximately 7 times faster. + </action> + <action dev="markt" issue="DBCP-249" type="add"> + Add support for validation testing database connections on creation. + </action> + </release> + <release version="1.5.1" date="not yet released" description="TBD"> + <action dev="markt" issue="DBCP-400" type="fix"> + Correct the documentation for the maxOpenPreparedStatements parameter + and review the use of the phrase non-positive throughout the + documentation and javadoc, replacing it with negative where that is the + correct definition to use. + </action> + <action dev="markt" issue="DBCP-405" type="fix"> + Avoid multiple calls to Connection.getAutoCommit() in + PoolableConnectionFactory.passivateObject() as it could be an expensive + call. + </action> + <action dev="markt" issue="DBCP-392" type="fix"> + Use one line per statement for methods with multiple statements rather + than using a single line. + </action> + <action dev="markt" issue="DBCP-396" type="fix"> + Expose all of the AbandonedConfig properties through a BasicDataSource. + </action> + <action dev="markt" issue="DBCP-380" type="fix" due-to="Balazs Zsoldos"> + Correct implementation of DelegatingConnection.isWrapperFor() so it + works correctly with older JDBC drivers. + </action> + <action dev="markt" issue="DBCP-347" type="fix" due-to="Robert Poskrobek"> + Correct implementation of DelegatingStatement.isWrapperFor(). Also fix + DelegatingDatabaseMetaData.isWrapperFor() and + DelegatingResultSet.isWrapperFor() that had the same problem. + </action> + <action dev="markt" issue="DBCP-341" type="fix" due-to="Ioannis Canellos"> + LocalXAConnectionFactory does not properly check if Xid is equal to + currentXid when resuming which may result in an XAException. + </action> + <action dev="markt" issue="DBCP-355" type="fix" due-to="Florent Guillaume"> + Ensure that the XAConnection is closed when the associated Connection is + closed. + </action> + <action dev="markt" issue="DBCP-398" type="fix"> + Clarify Jaavdoc for isClosed() method of PoolableConnection. + </action> + <action dev="markt" issue="DBCP-383" type="fix"> + Avoid NullPointerException and throw an XAException if an attempt is + made to commit the current transaction for a connection when no + transaction has been started. + </action> + <action dev="markt" issue="DBCP-372" type="fix"> + Using batchUpdate() should not invalidate the PreparedStatement when it + is returned to the pool. + </action> + <action dev="markt" issue="DBCP-309" type="fix"> + Improve documentation for JNDI example using BasicDataSource. + </action> + </release> + <release version="1.4.1" date="not yet released" description="TBD"> + <action dev="psteitz" issue="DBCP-334" type="update" due-to="Alberto Mozzone"> + Exposed GenericObjectPool's softMinEvictableIdleTimeMillis property for + configuration and use by BasicDataSource. + </action> + <action dev="psteitz" issue="DBCP-337" type="fix" due-to="Rob Gansevles"> + Made equals reflexive in DelegatingStatement (and subclasses), DelegatingMetaData, + DelegatingResultSet and PoolingDriver#PoolGuardConnectionWrapper. + </action> + <action dev="psteitz" issue="DBCP-342" type="fix" due-to="Byungchol Kim"> + Modified createDataSource method in BasicDataSource to ensure that GenericObjectPool + Evictor tasks are not started and orphaned when BasicDataSource encounters errors on + initialization. Prior to this fix, when minIdle and timeBetweenEvictionRunsMillis + are both positive, Evictors orphaned by failed initialization can continue to + generate database connection requests. This issue is duplicated by DBCP-339 + and DBCP-93. + </action> + <action dev="psteitz" issue="DBCP-330" type="fix"> + Changed DelegatingDatabaseMetaData to no longer add itself to the AbandonedTrace + of its parent connection. This was causing excessive memory consumption and was + not necessary, as resultsets created by DelegatingDatabaseMetaData instances are + attached to the parent connection's trace on creation. Also fixes DBCP-352. + </action> + <action dev="psteitz" issue="DBCP-343" type="fix"> + Modified execute methods of Statement objects to ensure that whenever + a statement is used, the lastUsed property of its parent connection is + updated. + </action> + <action dev="markt" issue="DBCP-333" type="fix"> + Correctly implemented the option to configure the class loader used to load + the JDBC driver. + </action> + <action dev="psteitz" issue="DBCP-346" type="update" due-to="Ken Tatsushita"> + LIFO configuration option has been added to BasicDataSource. When set + to true (the default), the pool acts as a LIFO queue; setting to false + causes connections to enter and exit to pool in FIFO order. + </action> + <action dev="psteitz" issue="DBCP-344" type="fix" due-to="Jeremy Whiting"> + Test transitive dependencies brought in by geronimo-transaction created + version conflicts (commons logging and junit). These have been explicitly + excluded in the POM. + </action> + <action dev="psteitz" issue="DBCP-348" type="fix" due-to="Eiji Takahashi"> + BasicDataSourceFactory incorrectly used "initConnectSqls" in versions + 1.3 and 1.4 of DBCP as the property name for connectionInitSqls. + Online docs for 1.3/1/4 have been updated to reflect this inconsistency. + The BasicDataSourceFactory property name has been changed to "connectInitSqls" + to match the online docs and the BasicDataSource property name. + </action> + </release> + <release version="1.4" date="2010-02-14" description="This release includes + new features as well as bug fixes and enhancements. Some bug fixes + change semantics (e.g. connection close is now idempotent). The 1.3 + and 1.4 releases of DBCP are built from the same sources. Version 1.4 + supports JDBC 4, so requires JDK 1.6. Applications running under + JDK 1.4-1.5 must use DBCP 1.3. Applications running under JDK 1.6 + should use DBCP 1.4. Other than support for the added methods in JDBC 4, + there is nothing new or different in DBCP 1.4 vs. DBCP 1.3. The list of + changes below since 1.2.2 applies to both the 1.3 and 1.4 release. Other than + the one issue related to adding JDBC 4 support (DBCP-191), all bug fixes + or new features are included in both DBCP 1.3 and 1.4 "> + <action dev="psteitz" type="fix" issue="DBCP-320"> + Eliminated poolKeys cache from PerUserPoolDataSource. + </action> + <action dev="sebb" type="fix" issue="DBCP-321"> + Eliminated userKeys LRUMap cache from SharedPoolDataSource. + </action> + <action dev="psteitz" type="fix" issue="DBCP-319" due-to="Sebastian Bazley"> + Made private fields final where possible. + </action> + <action dev="sebb" type="fix" issue="DBCP-318" due-to="Sebastian Bazley"> + PerUserPoolDataSource.getPooledConnectionAndInfo multi-threading bug. + </action> + <action dev="sebb" type="fix" issue="DBCP-315" due-to="Sebastian Bazley"> + Remove throws clause from method that does not throw an exception. + </action> + <action dev="sebb" type="fix" issue="DBCP-313" due-to="Sebastian Bazley"> + Remove code that catches and ignores Exceptions when calling + PooledConnection.removeConnectionEventListener(ConnectionEventListener) + as the method does not throw any Exceptions. + </action> + <action dev="sebb" type="fix" issue="DBCP-316" due-to="Sebastian Bazley"> + Remove impossible null check. + </action> + <action dev="sebb" type="update" issue="DBCP-314" due-to="Sebastian Bazley"> + Renamed variables with duplicate names in different scopes. + </action> + <action dev="psteitz" type="update" issue="DBCP-312" due-to="Glen Mazza"> + Clarified javadoc for BasicDataSource close() method. + </action> + <action dev="psteitz" type="add" issue="DBCP-204" due-to="Wei Chen"> + Made PoolingConnection pool CallableStatements. When BasicDataSource's + poolPreparedStatements property is true, CallableStatements are now + pooled along with PreparedStatements. The maxOpenPreparedStatements + property limits the combined number of Callable and Prepared statements + that can be in use at a given time. + </action> + <action dev="markt" type="update" issue="DBCP-305" due-to="Christopher Schultz"> + Use an API specific exception for logging abandoned objects to make + scanning the logs for these exceptions simpler and to provide a better + message that includes the creation time of the abandoned object. + </action> + <action dev="markt" type="fix" issue="DBCP-303" due-to="Dave Oxley"> + Ensure Statement.getGeneratedKeys() works correctly with the CPDS + adapter. + </action> + <action dev="psteitz" type="fix" issue="DBCP-302" due-to="Sebastian Bazley"> + Removed incorrectly advertised ClassNotFoundException from + JOCLContentHandler.ConstructorDetails.createObject(). + </action> + <action dev="markt" type="update" issue="DBCP-203" due-to="Mark Grand"> + Make the class loader used to load the JDBC driver configurable for the + BasicDatasource. + </action> + <action dev="markt" type="fix" issue="DBCP-8"> + Handle user password changes for InstanceKeyDataSources. + </action> + <action dev="psteitz" type="update" issue="DBCP-289" due-to="Marc Kannegießer"> + Made XADataSource configurable in BasicManagedDataSource. + </action> + <action dev="psteitz" type="fix" issue="DBCP-294" due-to="Philippe Mouawad"> + Added PoolableManagedConnection and PoolableManagedConnectionFactory so that + pooled managed connections can unregister themselves from transaction registries, + avoiding resource leaks. + </action> + <action dev="psteitz" type="update" issue="DBCP-276"> + Added connectionProperties property to DriverAdapterCPDS. + </action> + <action dev="psteitz" type="add" issue="DBCP-226"> + Added a validationQueryTimeout configuration parameter to BasicDataSource + allowing the user to specify a timeout value (in seconds) for connection + validation queries. + </action> + <action dev="psteitz" type="add" issue="DBCP-175" due-to="Jiri Melichna and Jerome Lacoste"> + Added a connectionInitSqls configuration parameter to BasicDataSource + allowing the user to specify a collection of SQL statements to execute + one time when a physical database connection is first opened. + </action> + <action dev="markt" type="fix" issue="DBCP-212"> + PoolableConnectionFactory.makeObject() is no longer synchronized. This + provides improved response times when load spikes at the cost of a + faster rise in database server load. This change was made as a partial + fix for DBCP-212. The synchronization changes in Commons Pool 1.5 complete + the fix for this issue. + </action> + <action dev="psteitz" type="fix" issue="DBCP-242"> + Reverted DelegatingConnection close to 1.2.2 version to ensure + open statements are closed before the underlying connection is closed. + </action> + <action dev="markt" type="fix" issue="DBCP-235"> + Refactor DelegatingConnection and ManagedConnection enable overridden + equals() and hashcode() to work correctly. + </action> + <action dev="markt" type="update" issue="DBCP-265"> + Add a DelegatingDatabaseMetaData to track ResultSets returned from + DatabaseMetaData objects. + </action> + <action dev="markt" type="fix" issue="DBCP-215"> + Modified BasicDataSourceFactory to complete initialization of the pool + by creating initialSize connections rather than leaving this to lazy + initialization when the pool is used. + </action> + <action dev="markt" type="fix" issue="DBCP-253"> + Eliminated masked _stmt field in descendents of DelegatingStatement. + </action> + <action dev="markt" type="fix" issue="DBCP-191" due-to="Michael Heuer and J. David Beutel" > + Modified DBCP sources to support compilation under JDK 1.4-1.6 + using Ant flags to do conditional compilation. + </action> + <action dev="markt" type="fix" issue="DBCP-272"> + Added a static initializer to BasicDatasource that calls + DriverManager.getDrivers() to force initialization before we ever do + anything that might use Class.forName() to load (and register) a JDBC + driver. + </action> + <action dev="markt" type="fix" issue="DBCP-4"> + Eliminated direct System.out calls in AbandonedTrace. + </action> + <action dev="niallp" type="fix" issue="DBCP-264"> + Modified DelegatingStatement close to clear open batches. + </action> + <action dev="psteitz" type="fix" issue="DBCP-255"> + Eliminated unused private "parent" field in AbandonedTrace. + </action> + <action dev="psteitz" type="fix" issue="DBCP-273" due-to="Mark Lin"> + Fixed errors handling boolean-valued Reference properties in + InstanceKeyObjectFactory, DriverAdapterCPDS that were causing + testOnBorrow and poolPreparedStatements properties to be incorrectly + set when creating objects from javax.naming.Reference instances. + </action> + <action dev="psteitz" type="fix" issue="DBCP-271" due-to="Sebastian Bazley"> + Made private instance fields of AbandonedTrace volatile (parent, + createdBy, lastUsed, createdTime) or final (trace). + </action> + <action dev="psteitz" type="fix" issue="DBCP-270" due-to="Filip Hanik"> + Narrowed synchronization in AbandonedTrace to resolve an Evictor deadlock. + </action> + <action dev="bayard" type="fix" issue="DBCP-218"> + Corrected Javadoc to state that getLoginTimeout and setLoginTimeout are + NOT supported by BasicDataSource. + </action> + <action dev="bayard" type="update" issue="DBCP-211"> + Added Maven 2 pom.xml. Removed a block of code from TestJOCLed that set + the Xerces parser manually. This was to support early JDKs. The 1.3 + version of DBCP requires JDK 1.4+. + </action> + <action dev="psteitz" type="add" issue="DBCP-228" due-to="Dain Sundstrom"> + Added support for pooling managed connections. + </action> + <action dev="psteitz" type="add" issue="DBCP-230" due-to="Dain Sundstrom"> + Added BasicManagedDataSource, extending BasicDataSource. + Also improved extensibility of BasicDataSource by encapsulating + methods to create object pool, connection factory and datasource + instance previously embedded in createDataSource. + </action> + <action dev="psteitz" type="update" issue="DBCP-233" due-to="Dain Sundstrom"> + Changed behavior to allow Connection, Statement, PreparedStatement, + CallableStatement and ResultSet to be closed multiple times. The first + time close is called the resource is closed and any subsequent calls + have no effect. This behavior is required as per the Javadocs for these + classes. Also added tests for closing all types multiple times and + updated any tests that incorrectly assert that a resource can not be + closed more then once. Fixes DBCP-3, DBCP-5, DBCP-23 and DBCP-134. + </action> + <action dev="psteitz" type="update" issue="DBCP-11" due-to="Dain Sundstrom"> + Modified PoolingDataSource, PoolingDriver and DelegatingStatement to + assure that all returned Statements, PreparedStatements, + CallableStatements and ResultSets are wrapped with a delegating object, + which already properly handle the back pointers for Connection and + Statement. Also added tests to to assure that the *same* object used + to create the statement or result set is returned from either + getConnection() or getStatement(). + </action> + <action dev="dain" type="update" issue="DBCP-143"> + SQLNestedException has been deprecated and will be replaced in DBCP 2.0 with + SQLException and standard Java exception chaining. + </action> + <action dev="dain" type="fix" issue="DBCP-221"> + BasicDataSource.close() now permanently marks the data source as closed, + and no new connections can be obtained from the data source. At close all + idle connections are destroyed and the method returns. As the remaining + active connections are closed, they are destroyed. + </action> + <action dev="psteitz" type="fix" issue="DBCP-241"> + Eliminated potential sources of NullPointerExceptions in + PoolingConnection. + </action> + <action dev="psteitz" type="fix" issue="DBCP-216" due-to="Marcos Sanz"> + Improved error recovery and listener cleanup in + KeyedCPDSConnectionFactory. Substituted calls to destroyObject with + _pool.invalidateObject on error to ensure pool active count is + decremented on error events. Ensured that events from closed or invalid + connections are ignored and listeners are cleaned up. + </action> + <action dev="psteitz" type="fix" issue="DBCP-245" due-to="Michael Drechsel"> + Fixed error in SharedPoolDataSource causing incorrect passwords to be + stored under certain conditions. + </action> + <action dev="psteitz" type="fix" issue="DBCP-237" due-to="Oliver Matz"> + Added exception handler to ensure that PooledConnections are not + orphaned when an exception occurs in setUpDefaults or clearWarnings in + InstanceKeyDataSource.getConnection. + </action> + <action dev="psteitz" type="fix" issue="DBCP-252" due-to="FindBugs"> + Made getPool synchronized in PoolableConnectionFactory. + Fixes inconsistent synchronization accessing _pool. + </action> + <action dev="psteitz" type="fix" issue="DBCP-252" due-to="FindBugs"> + Fixed inconsistent synchronization on _rollbackAfterValidation, + _validationQuery and _pool in CPDSConnectionFactory and + KeyedCPDSConnectionFactory by making the first two volatile and making + both getter and setter for _pool synchronized. + </action> + </release> + <release version="1.3" date="2010-02-14" description="Compatability release for JDBC 3. + See version 1.4 description and change log."> + <action type="update"> + See <a href="changes-report.html#a1.4">DBCP 1.4 Changes </a> for details. Version + 1.3 is identical to 1.4, other than JDBC 4 methods being filtered out of the DBCP 1.3 sources. Changes + Since 1.2.2 are the same for 1.3 and 1.4. + </action> + </release> + <release version="1.2.2" date="2007-04-04" + description="This is a maintenance release containing bug fixes + and enhancements. All API changes are binary compatible with version 1.2.1."> + <action dev="dirkv " type="add"> + Add a <i>JNDI How To</i> to the User Guide. + </action> + <action dev="dirkv " type="fix" issue="DBCP-108" due-to="Maxwell Grender-Jones"> + DriverManagerConnectionFactory: blank user name and password handling. + </action> + <action dev="dirkv " type="fix" issue="DBCP-113" due-to="Rohan Lenard"> + Broken behaviour for BasicDataSource.setMaxActive(0). + </action> + <action dev="dirkv " type="fix" issue="DBCP-36" due-to="Jonathan Whitall"> + BasicDataSource does not work with getConnection(String, String). + </action> + <action dev="dirkv " type="update" issue="DBCP-164" due-to="Todd Carmichael"> + Enhancements to prepared statement in DriverAdapterCPDS. + </action> + <action dev="yoavs" type="update" issue="DBCP-186" due-to="Ralf Hauser"> + Better messages and docs for LoginTimeout UnsupportedOperationException. + </action> + <action dev="yoavs" type="fix" issue="DBCP-50" due-to="Nicky Nicolson"> + Error in JOCL snippet in org.apache.commons.dbcp package javadoc. + </action> + <action dev="yoavs" type="update" issue="DBCP-165" due-to="QM"> + Added toString() methods to DelegatingPreparedStatement and DelegatingStatement + </action> + <action dev="yoavs" type="fix"> + Changes to make DBCP compile on JDK 1.5 by adding source="1.4" to compiler + arguments (there are compiler errors in JDK 5.0 without this source switch + that cannot be fixed without JDK 5.0-specific syntax). + </action> + <action dev="dirkv " type="fix" issue="DBCP-20" due-to="Chris Nappin"> + Per-user pooling with Oracle driver and default isolation settings. + </action> + <action dev="dirkv " type="fix" issue="DBCP-9" due-to="Adrian Baker"> + Error in JOCL document in javadoc. + </action> + <action dev="sullis" type="update"> + Added toString() method to DelegatingConnection. + </action> + <action dev="dirkv " type="update" issue="DBCP-181" due-to="Meikel Bisping"> + Add DriverManager.invalidateConnection(). + </action> + <action dev="dirkv " type="fix" issue="DBCP-184" due-to="Meikel Bisping"> + Improved Exception nesting in ConnectionPool. + </action> + <action dev="dennisl" type="fix" issue="DBCP-144" due-to="Sebb"> + Fix broken website links for examples. + </action> + <action dev="psteitz" type="fix" issue="DBCP-28" + due-to="Huw Lewis, James Ring"> + Modified PoolableConnection close method to invalidate instance + when invoked on an already closed connection. + </action> + <action dev="joehni" type="fix" issue="DBCP-81"> + Inserted null checks to avoid NPE in close operations. + </action> + <action dev="psteitz" type="fix" issue="DBCP-105" + due-to="Sandy McArthur, Thomas Fischer"> + Changed getReference method in InstanceKeyDataSource to return a + concrete factory and added implementations of getReference in concrete + subclasses. + </action> + <action dev="psteitz" type="fix" issue="DBCP-39" due-to="Jindrich Vimr"> + Inserted null check in close method of SharedPoolDataSource to avoid + NPE when invoked on non-initialized pool. + </action> + <action dev="psteitz" type="fix" issue="DBCP-71" due-to="Douglas Squirrel"> + Document fact that true values for testOnBorrow, testOnReturn, testWhileIdle + only have effect when validationQuery is set to a non-null string. + </action> + <action dev="psteitz" type="fix" issue="DBCP-102"> + Modified activateObject in PoolableConnection to test connection + properties before resetting to defaults. + </action> + <action dev="sandymac" type="fix" issue="DBCP-188"> + Corrected maxActive documentation in configuration.html. + </action> + <action dev="psteitz" type="update"> + Upgraded dependency to Pool 1.3. + </action> + <action dev="psteitz" type="update" issue="DBCP-187" due-to="Ralf Hauser"> + Added connection info to SQLException messages when closed connections + (resp stmts) are accessed in DelegatingConnection, DelegatingStatement. + </action> + <action dev="psteitz" type="fix" issue="DBCP-41" due-to="Anton Tagunov"> + Fixed errors in pool parameter documentation and made + 0 value for _maxPreparedStatements in DriverAdapterCPDS behave + like a negative value, to be consistent with documentation + and pool behavior. + </action> + <action dev="psteitz" type="fix" issue="DBCP-100"> + Made userKeys an instance variable (i.e., not static) + in SharedPoolDataSource. + </action> + <action dev="psteitz" type="fix" issue="DBCP-198"> + Changed implementation of equals in + PoolingDataSource.PoolGuardConnectionWrapper + to ensure it is reflexive, even when wrapped connections are not + DelegatingConnections. + </action> + <action dev="psteitz" type="update" issue="DBCP-116" due-to="Thomas Fischer"> + Added rollbackAfterValidation property and code to issue a rollback on a + connection after validation when this property is set to true to eliminate + Oracle driver exceptions. Default property value is false. + </action> + <action dev="psteitz" type="update" issue="DBCP-68"> + Removed dependency on Commons Collections by adding collections + 2.1 sources for LRUMap and SequencedHashMap with package scope to + datasources package. + </action> + <action dev="psteitz" type="fix" issue="DBCP-65"> + Removed synchronization from prepareStatement methods in + PoolingConnection. Synchronization in these methods was causing + deadlocks. No resources other than the prepared statement pool are + accessed by these methods, and the pool methods are synchronized. + Also fixes DBCP-202. + </action> + </release> + + <release version="1.2.1" date="2004-06-12" description="Maintenance Release to restore JDK 1.3 compatibility"> + <action type="fix"> + See <a href="release-notes-1.2.1.html">DBCP 1.2.1 Release Notes</a> for details. + </action> + </release> + + <release version="1.2" date="2004-06-07"> + <action type="update"> + See <a href="release-notes-1.2.html">DBCP 1.2 Release Notes</a> for details. + </action> + </release> + + <release version="1.1" date="2003-10-20"> + <action type="update"> + See <a href="release-notes-1.1.html">DBCP 1.1 Release Notes</a> for details. + </action> + </release> + + <release version="1.0" date="2002-08-12" description="Initial Release"> + <action type="add"> + Initial Release + </action> + </release> + + </body> +</document>