blob: e420a634ae97130087f8002689802c26cff49767 [file] [log] [blame]
<?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
CVS commits. Set the project.properties' maven.changelog.range
property to the number of days since the last release.
The <action> type attribute can be add,update,fix,remove.
-->
<document>
<properties>
<title>Commons DBCP Release Notes</title>
</properties>
<body>
<release version="1.4" date="TBD" 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. Version 1.3 supports JDBC 3 and
has JDK 1.4 as its minimum JDK requirement. Other than support for the
added methods in JDBC 4, there is nothing new or different in DBCP 1.4
vs. DBCP 1.3. Applications running under JDK 1.4-1.5 must use DBCP 1.3.
Applications running under JDK 1.6 may use DBCP 1.4.">
<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">
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 although it does not fully address that 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">
Add some test cases that were missing from the TestAll test suite.
</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 1.4 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="TBD" description="Compatability release
for JDBC 3. See version 1.4 description."/>
<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 &lt;i&gt;JNDI How To&lt;/i&gt; 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 &lt;a href="release-notes-1.2.1.html"&gt;DBCP 1.2.1 Release Notes&lt;/a&gt; for details.
</action>
</release>
<release version="1.2" date="2004-06-07">
<action type="update">
See &lt;a href="release-notes-1.2.html"&gt;DBCP 1.2 Release Notes&lt;/a&gt; for details.
</action>
</release>
<release version="1.1" date="2003-10-20">
<action type="update">
See &lt;a href="release-notes-1.1.html"&gt;DBCP 1.1 Release Notes&lt;/a&gt; for details.
</action>
</release>
<release version="1.0" date="2002-08-12" description="Initial Release">
<action type="add">
Initial Release
</action>
</release>
</body>
</document>