| Apache Commons Pool 2.3 RELEASE NOTES |
| |
| The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.3. |
| |
| Apache Commons Pool provides an object-pooling API and a number of object pool implementations. |
| Version 2 contains a completely re-written pooling implementation compared to the 1.x series. |
| In addition to performance and scalability improvements, version 2 includes robust instance |
| tracking and pool monitoring. Version 2 requires JDK level 1.6 or above. |
| |
| No client code changes are required to migrate from version 2.0, 2.1, or 2.2 to 2.3. |
| Users of version 1.x should consult the migration guide on the Commons Pool web site. |
| |
| NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean |
| and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods |
| that will be made available via JMX. They must not be implemented by clients as |
| they are subject to change between major, minor and patch version releases of |
| Commons Pool. Clients that implement any of these interfaces may not, therefore, |
| be able to upgrade to a new minor or patch release without requiring code |
| changes. |
| |
| This is a maintenance release that includes bug fixes and minor enhancements. |
| |
| Changes in version 2.3 include: |
| |
| New features: |
| o POOL-262: Made fairness configurable for GenericObjectPool, GenericKeyedObjectPool. |
| |
| Fixed Bugs: |
| o POOL-279: Eliminated possibility that DefaultPoolObject#getIdleTimeMillis() could |
| return a negative value. Use by pool implementations would not hit this |
| bug. Thanks to Jacopo Cappellato. |
| o POOL-275: Made wrapped BaseProxyHandler.pooledObject volatile. |
| o POOL-277: Replace synchronisation with lock-free maxBorrowWaitTimeMillis to |
| increase scalability. Thanks to Lucas Pouzac. |
| o POOL-276: Ensure that objects are not validated on borrow when testOnBorrow is set |
| to false, testOnCreate is set to true and the pool is exhausted at the |
| point borrowObject() is called. |
| o POOL-270: Fixed error in GenericKeyedObjectPool constructor causing minEvictableIdleTimeMillis |
| to be used in place of timeBetweenEvictionRunsMillis in eviction timer setup |
| when a GenericKeyedObjectPoolConfig instance is supplied to the constructor. Thanks to Michael Berman. |
| o POOL-263: Fix a threading issue that meant that concurrent calls to close() and |
| returnObject() could result in some returned objects not being destroyed. |
| o POOL-261: Correctly mark cglib as an optional dependency and ensure that the OSGi |
| manifest information reflects that. |
| o Improve performance of statistics collection for pools that extend |
| BaseGenericObjectPool. |
| o POOL-259: Made client wait time statistics accurate when pools are configured to |
| block indefinitely. Also modified computation to include latency clients |
| experience due to waiting on factory methods. |
| o Prevent potential memory leaks when the Pool is dereferenced without being |
| closed. |
| o Prevent potential memory leaks with using an Evictor in a container |
| environment. |
| o Protect against a user provided eviction policy throwing an exception and |
| stopping the Evictor thread. |
| o Use the thread context class loader to load custom eviction policies. This |
| allows application provided eviction policies to be used in a container |
| environment when the pooling implementation is provided by the container. |
| o POOL-281: Fix a potential infinite loop in the underlying Deque implementation. |
| |
| Changes: |
| o POOL-273: Update cglib to 3.1 from 3.0. |
| o POOL-274: Update asm-util to 5.0.3 from 4.0. |
| |
| |
| For complete information on Apache Commons Pool, including instructions on how to submit bug reports, |
| patches, or suggestions for improvement, see the Apache Apache Commons Pool website: |
| |
| http://commons.apache.org/proper/commons-pool/ |
| |
| |