This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-pool.git
commit 7d3809a41d119a93a25b97b5b94086b4884aa828 Author: Gary Gregory <[email protected]> AuthorDate: Fri Jan 2 17:43:30 2026 -0500 Add release 2.13.0 and 2.13.1 --- src/changes/changes.xml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 7a4053ca..7691e3a9 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -69,6 +69,45 @@ The <action> type attribute can be add,update,fix,remove. <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump org.apache.commons:commons-lang3 from 3.13.0 to 3.20.0 #326, #333, #342, #415.</action> <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump org.apache.bcel:bcel from 6.7.0 to 6.10.0 #263, #306, #327.</action> </release> + <release version="2.13.1" date="2025-12-30" description="This is a maintenance release. Java 8 or later is required."> + <!-- FIX --> + <action type="fix" issue="POOL-427" dev="psteitz" due-to="Raju Gupta">The fix for POOL-425 introduced a regression where addObject fails when maxIdle is negative (indicating no limit).</action> + <!-- ADD --> + <!-- UPDATE --> + </release> + <release version="2.13.0" date="2025-12-06" description="This is a feature and maintenance release. Java 8 or later is required."> + <!-- FIX --> + <action type="fix" issue="POOL-424" dev="psteitz" due-to="Steven Adams">GenericObjectPool.invalidateObject() can leave other threads waiting to borrow hanging. + The fix for this issue changes behavior of invalidateObject. This method now always tries to add a new instance + to the pool to replace the invalidated and destroyed instance. As a result of this change, abandoned object + removal now attemps to replace abandoned objects. + </action> + <action type="fix" issue="POOL-425" dev="psteitz">GenericObjectPool addObject does not respect maxIdle.</action> + <action type="fix" issue="POOL-350" dev="psteitz">Make placement of calls to GKOP reuseCapacity configurable.</action> + <action type="fix" issue="POOL-290" dev="psteitz" due-to="Serge Angelov">TestSoftRefOutOfMemory (unit test) can loop infinitely on failure.</action> + <action type="fix" issue="POOL-419" dev="psteitz" due-to="Raju Gupta, Phil Steitz">GenericObjectPool counters and object collections can be corrupted when returnObject and invalidate are invoked concurrently by client threads on the same pooled object.</action> + <action type="fix" issue="POOL-421" dev="psteitz" due-to="Phil Steitz">GenericObjectPool addObject should return immediately when there is no capacity to add.</action> + <action type="fix" issue="POOL-420" dev="psteitz" due-to="Phil Steitz">The maximum wait time for GenericKeyedObjectPool.borrowObject(*) may exceed configured maximum wait time. This is the same issue as POOL-418, but for GKOP. + 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. + </action> + <action type="fix" dev="ggregory" due-to="Gary Gregory">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).</action> + <action type="fix" issue="POOL-418" dev="ggregory" due-to="Gary Gregory">The maximum wait time for GenericObjectPool.borrowObject(*) may exceed expectations due to a spurious thread wakeup. + The remaining duration was incorrectly calculated and the method did not end up waiting long enough. + Recompute the remaining duration an additional time when we block when exhausted. + </action> + <action type="fix" dev="ggregory" due-to="Wei Guo, Gary Gregory">Fix site link from the About page to the Download page, see also #387.</action> + <action type="fix" dev="ggregory" due-to="Gary Gregory">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.</action> + <action type="fix" dev="ggregory" due-to="Gary Gregory">org.apache.commons.pool2.impl.GenericObjectPool.create(Duration) should normalize a negative duration to zero.</action> + <action type="fix" dev="markt" due-to="Coverity Scan">Fix potential ConcurrentModificationException in EvictionTimer thread clean-up.</action> + <action type="fix" dev="markt" due-to="Coverity Scan">Fix potential ConcurrentModificationException in EvictionTimer tasks.</action> + <!-- ADD --> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.pool2.PooledObject.nonNull(PooledObject).</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.pool2.PooledObject.getObject(PooledObject).</action> + <action type="add" dev="ggregory" due-to="Pratyay, Gary Gregory">Made statistics collection optional in BaseGenericObjectPool #429.</action> + <!-- UPDATE --> + <action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 79 to 93.</action> + <action type="update" dev="ggregory" due-to="Gary Gregory">[test] Bump commons-lang3 from 3.17.0 to 3.20.0.</action> + </release> <release version="2.12.1" date="2025-01-19" description="This is a feature and maintenance release (Java 8 or above)."> <!-- FIX --> <action type="fix" dev="ggregory" due-to="Gary Gregory">Use java.time.Instant precision in org.apache.commons.pool2.impl.ThrowableCallStack.Snapshot throwable message.</action>
