Apache Commons logo Commons DBCP

Release notes for Commons-DBCP 1.1

There were a lot changes since the 1.0 release on 12 Aug 2002.

  • All existing features can now be configured by JNDI Context providers (Tomcat)

  • The double close() of a pooled connection is more effectively blocked (you may experience more "Already closed" SQLExceptions)

  • Prepared statement pooling is now implemented in BasicDataSource (set poolPreparedStatements=true, maxOpenPreparedStatements=xxx)

  • Access to the underlying connection is blocked by default You can access the underlying connection by setting accessToUnderlyingConnectionAllowed=true and by using the following construct: Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate();

  • New minIdle parameter for a minimum number of idle connections ready for use

  • New connection default properties: defaultCatalog and defaultTransactionIsolation

  • Missing driverClassName will now give the following error "No suitable driver"

  • Bad validationQuery will produce a meaningful SQLException

  • UML Class and sequence diagrams, configuration documentation

  • The following issues were resolved since v1.0: (see Bugzilla for complete description)
    ID Date Sev State Summary
    6934 2003-09-20 Blo DUPL SQLTransformer.java - infinite loop in getConnection
    7038 2002-03-18 Nor FIXE DBCP does not build under JDK 1.4
    7727 2002-04-20 Maj FIXE Infinite loop (stack overflow) in BasicDataSource
    7728 2002-04-20 Maj FIXE BasicDataSource cannot use many JDBC drivers
    8620 2002-04-29 Nor INVA Closed Connection Exception on setAutoCommit
    9073 2002-07-20 Nor FIXE BasicDataSource - invalid connections are not checked
    9850 2002-07-20 Nor FIXE No way to get at SQLException if connection to database fail
    10592 2002-07-20 Nor DUPL dataSource.getConnection never returns in Tomcat using DBCP
    10614 2002-07-20 Nor FIXE DBCP connection pooling broken in Tomcat-4.1.7 (regression)
    10688 2002-07-20 Min FIXE Version in the Manifest
    10969 2002-07-20 Maj FIXE BasicDataSource defaults are unusable
    11507 2002-08-06 Nor INVA Cleanup dead connections
    12047 2002-11-01 Nor INVA validationQuery + MSSQL
    12400 2002-11-07 Nor WORK same connections
    12409 2002-11-01 Blo FIXE Connection can be closed twice
    12733 2003-02-06 Nor FIXE [DBCP][PATCH]Statement.getResultSet() doesn't return null if
    12869 2002-11-01 Maj FIXE Abandoned Connections are never closed
    13077 2002-11-07 Enh FIXE Jdbc2PoolDataSource issues
    13129 2002-11-01 Nor FIXE CPDSConnectionFactory prints invalid error messages
    13155 2002-10-30 Nor DUPL unexpected "exhausted pool" error
    13235 2002-11-16 Blo FIXE referenced UserPassKey instances get erroneously returned to
    13930 2003-03-06 Enh FIXE Adding connection parameters to BasicDataSourceFactory
    13988 2003-03-17 Enh DUPL permission error makes connection loop
    14267 2003-04-28 Maj INVA DBCP doesn't work on Tomcat 4.1.12 and Oracle JDBC driver
    14592 2002-11-15 Enh INVA DBCP must be robust against e.g. database shutdowns
    14663 2003-05-14 Nor REMI Tomcat5 server hangs when trying to get the database connect
    15123 2003-08-21 Maj FIXE Incorrect stack trace shown when abandoned connections are c
    15539 2003-02-06 Maj DUPL Strange Result Set on output
    16283 2003-02-01 Nor WONT Inproper use of Exception
    16581 2003-03-06 Maj FIXE Deadlock in AbandonedObjectPool when firewall closes connect
    16629 2003-03-06 Nor FIXE org.apache.commons.dbcp.jdbc2pool.Jdbc2PoolDataSource: setti
    16987 2003-08-11 Maj FIXE race condition in PoolableConnection.close()
    17015 2003-03-06 Nor FIXE GenericObjectPool.invalidateObject() doesn't work with Aband
    17200 2003-03-06 Maj FIXE DBCP: org.apache.commons.dbcp.cpdsadapter.PooledConnectionIm
    17301 2003-04-08 Nor WONT NPE in Oracle driver when using DBCP PoolingDataSource
    17456 2003-04-08 Enh FIXE BasicDataSource should use commons-logging
    17635 2003-03-06 Min FIXE PoolableConnectionFactory-Construction declared to throw Exc
    17677 2003-05-31 Maj INVA Pooled connection architecture vulnerable to double use
    17678 2003-04-01 Maj FIXE DBCP Fails silently in many cases
    17680 2003-03-13 Maj INVA PoolableConnection.reallyClose() doesn't decrement active co
    17911 2003-04-07 Maj WONT Problem with getConnection() and Informix
    18012 2003-08-26 Enh FIXE BasicDataSource doesn't include PreparedStmt Pooling
    18483 2003-04-08 Nor WONT AbandonedObjectPool.removeAbandoned never cleans up the trac
    18502 2003-03-30 Blo INVA java.lang.ClassNotFoundException: org.apache.commons.pool.St
    18550 2003-08-25 Enh FIXE Add defaultTransactionIsolation to BasicDataSource
    18834 2003-04-08 Nor FIXE Jdbc2PoolDataSource throws a RuntimeException when database
    18905 2003-08-11 Nor FIXE Couldn't get connection (Jdbc2PoolDataSource)
    18921 2003-08-11 Enh FIXE Per User methods not working in Jdbc2PoolDataSource
    18982 2003-04-13 Maj INVA Binary distribution missing package
    19374 2003-08-11 Nor FIXE Potential for DelegateStatement, DelegateResultSet to be lef
    19614 2003-08-13 Maj FIXE Poor performance under load
    19615 2003-05-02 Maj INVA Unnecessary global synchronized in AbandonedObjectPool method
    19706 2003-08-26 Enh WONT Add Initial Commons Logging to DBCP
    20649 2003-08-11 Cri INVA deadlock when acquiring connections from a pool
    21132 2003-08-11 Cri DUPL Broken pipe despite validation query set
    21182 2003-08-21 Nor INVA [dbcp] removing a webapp does not force connections closed
    21229 2003-08-11 Nor FIXE ConnectionFactory throws SQLException but implementations do
    21273 2003-08-11 Nor FIXE Memory-leak like behaviour in DBCP due to warnings chained t
    21418 2003-08-11 Min FIXE Example code
    21453 2003-08-11 Maj INVA NullPointerException in DBCP when used for client-server ap
    21458 2003-08-11 Nor FIXE Statements and connections don't implement equals()/hashCode
    21748 2003-08-11 Nor FIXE BasicDataSource.close() throws NPE
    22078 2003-08-12 Nor FIXE [DBCP] testOnBorrow fails if setAutoCommit() throws an excep
    22079 2003-08-13 Nor FIXE [DBCP] if connection closed twice *closed* connection is ret
    22214 2003-08-11 Maj FIXE Delegating ResultSet causing NPE
    22229 2003-08-13 Cri FIXE Foul connection causes livelock of all pool operations
    22598 2003-08-21 Enh FIXE minIdle Functionality for DBCP via Patches Posted for common
    22736 2003-08-29 Maj INVA validationQuery parameter hangs getConnection method.
    22750 2003-08-27 Nor FIXE BasicDataSource always sets testOnBorrow if given a validati
    22776 2003-09-20 Nor WONT DBCP should not be writing messages to stderr or stdout
    23066 2003-09-13 Maj FIXE DriverManager.getConnection() throws DbcpException
    23081 2003-09-20 Nor FIXE DBCP - Bad DB Validation Query Hangs Everything
    23138 2003-09-13 Nor FIXE getDelegate no longer useful since v1.7 of PoolingDataSource
    23157 2003-09-20 Enh FIXE add defaultCatalog to BasicDataSource
    23185 2003-09-21 Nor WONT PoolableConnection.close() won't allow multiple close
    23291 2003-09-20 Nor FIXE impossible to turn off all validation tests when a validatio
    23293 2003-09-20 Nor FIXE setAutoCommit(true) when returning connection to the pool
    23304 2003-09-21 Nor FIXE NullpointerException when no driverClassName is specified

  • The following issues were resolved since v1.1RC1:
    ID Date Sev State Summary
    22776 2003-09-30 Nor FIXE DBCP should not be writing messages to stderr or stdout (removed unneeded logging in AbandonedObjectPool)
    23491 2003-10-13 Cri FIXE Can't configure PerUserPoolDataSource for use with tomcat, more...

  • The following issues were resolved since v1.1RC2:
    ID Date Sev State Summary
    23843 2003-10-20 Blo FIXE PerUserPoolDataSource.getConnection(username, pw) may return connection under wrong username