|
| 1 | +Apache Commons Pool 2.13.0 Release Notes |
| 2 | +---------------------------------------- |
| 3 | + |
| 4 | +The Apache Commons Pool team is pleased to announce the release of Apache Commons Pool 2.13.0. |
| 5 | + |
| 6 | +Apache Commons Pool provides an object-pooling API and several object-pool implementations. |
| 7 | +Version 2 contains a completely rewritten pooling implementation compared to the 1.x series. |
| 8 | +In addition to performance and scalability improvements, version 2 includes robust instance |
| 9 | +tracking and pool monitoring. |
| 10 | + |
| 11 | +Version 2.7.x and up requires Java 8 or above. |
| 12 | +Version 2.6.x requires Java 7 or above. |
| 13 | +Version 2.5.x requires Java 7 or above. |
| 14 | +Version 2.0 requires 6 or above. |
| 15 | + |
| 16 | +NOTE: The MBean interfaces (DefaultPooledObjectInfoMBean, GenericKeyedObjectPoolMXBean, |
| 17 | + and GenericKeyedObjectPoolMXBean) exist only to define the attributes and methods |
| 18 | + that will be made available via JMX. Clients must not implement them as |
| 19 | + they are subject to change between major, minor, and patch version releases of |
| 20 | + Commons Pool. Clients that implement any of these interfaces may not |
| 21 | + be able to upgrade to a new minor or patch release without requiring code |
| 22 | + changes. |
| 23 | + |
| 24 | +${d} |
| 25 | + |
| 26 | +Changes in version 2.13.0 include: |
| 27 | + |
| 28 | +New features: |
| 29 | +o Add org.apache.commons.pool2.PooledObject.nonNull(PooledObject). Thanks to Gary Gregory. |
| 30 | +o Add org.apache.commons.pool2.PooledObject.getObject(PooledObject). Thanks to Gary Gregory. |
| 31 | +o Made statistics collection optional in BaseGenericObjectPool #429. Thanks to Pratyay, Gary Gregory. |
| 32 | + |
| 33 | +Fixed Bugs: |
| 34 | +o POOL-424: GenericObjectPool.invalidateObject() can leave other threads waiting to borrow hanging. |
| 35 | + The fix for this issue changes behavior of invalidateObject. This method now always tries to add a new instance |
| 36 | + to the pool to replace the invalidated and destroyed instance. As a result of this change, abandoned object |
| 37 | + removal now attemps to replace abandoned objects. Thanks to Steven Adams. |
| 38 | +o POOL-425: GenericObjectPool addObject does not respect maxIdle. |
| 39 | +o POOL-350: Make placement of calls to GKOP reuseCapacity configurable. |
| 40 | +o POOL-290: TestSoftRefOutOfMemory (unit test) can loop infinitely on failure. Thanks to Serge Angelov. |
| 41 | +o POOL-419: GenericObjectPool counters and object collections can be corrupted when returnObject and invalidate are invoked concurrently by client threads on the same pooled object. Thanks to Raju Gupta, Phil Steitz. |
| 42 | +o POOL-421: GenericObjectPool addObject should return immediately when there is no capacity to add. Thanks to Phil Steitz. |
| 43 | +o POOL-420: The maximum wait time for GenericKeyedObjectPool.borrowObject(*) may exceed configured maximum wait time. This is the same issue as POOL-418, but for GKOP. |
| 44 | + Also included in this fix is a change to addObject that prevents it from waiting for capacity to create. That method now returns immediately when there is no capcity to add to the pool under the given key. Thanks to Phil Steitz. |
| 45 | +o Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory. |
| 46 | +o POOL-418: The maximum wait time for GenericObjectPool.borrowObject(*) may exceed expectations due to a spurious thread wakeup. |
| 47 | + The remaining duration was incorrectly calculated and the method did not end up waiting long enough. |
| 48 | + Recompute the remaining duration an additional time when we block when exhausted. Thanks to Gary Gregory. |
| 49 | +o Fix site link from the About page to the Download page, see also #387. Thanks to Wei Guo, Gary Gregory. |
| 50 | +o Operation on the "idleHighWaterMark" shared variable in "ErodingFactor" class is not atomic [org.apache.commons.pool2.PoolUtils$ErodingFactor] At PoolUtils.java:[line 98] AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE. Thanks to Gary Gregory. |
| 51 | +o org.apache.commons.pool2.impl.GenericObjectPool.create(Duration) should normalize a negative duration to zero. Thanks to Gary Gregory. |
| 52 | +o Fix potential ConcurrentModificationException in EvictionTimer thread clean-up. Thanks to Coverity Scan. |
| 53 | +o Fix potential ConcurrentModificationException in EvictionTimer tasks. Thanks to Coverity Scan. |
| 54 | + |
| 55 | +Changes: |
| 56 | +o Bump org.apache.commons:commons-parent from 79 to 93. Thanks to Gary Gregory. |
| 57 | +o [test] Bump commons-lang3 from 3.17.0 to 3.20.0. Thanks to Gary Gregory. |
| 58 | + |
| 59 | + |
| 60 | +For complete information on Apache Commons Pool, including instructions on how to submit bug reports, |
| 61 | +patches, or suggestions for improvement, see the Apache Commons Pool website: |
| 62 | + |
| 63 | +https://commons.apache.org/proper/commons-pool/ |
| 64 | + |
| 65 | +Download page: https://commons.apache.org/proper/commons-pool/download_pool.cgi |
| 66 | + |
| 67 | +----------------------------------------------------------------------------------------------- |
1 | 68 | Apache Commons Pool 2.12.1 Release Notes |
2 | 69 | ---------------------------------------- |
3 | 70 |
|
|
0 commit comments