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>

Reply via email to