| <?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.0.1" date="TBD" 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 DelegatingStatment 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 |
| IntanceKeyDataSource.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 username/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> |