On Fri, Feb 20, 2026 at 3:47 AM ali takavci via dev
<[email protected]> wrote:
>
> Hi Commons Pool team,
>
> We are writing to flag a behavioral change in GenericObjectPool introduced in 
> version 2.13.1 that is causing a regression in our library.
>
> The change in question is:Ensure that invalidateObject replaces destroyed 
> instance. JIRA: POOL-424 · apache/commons-pool@32fd701
> - ASF Jira
>
> As part of this fix, invalidateObject() now internally calls addObject() to 
> replace the destroyed instance. While we understand the intent, this 
> introduces a breaking change for consumers whose object factories are not 
> always capable of producing new pooled instances on demand — for example, 
> factories that rely on external resources that may be temporarily unavailable.
> Previously, upgrading from 2.12.1 to 2.13.1 exposed this issue: in scenarios 
> where the factory cannot provide a new instance, the addObject() call fails, 
> causing invalidateObject() to throw an exception. This breaks our 
> invalidation flow entirely.
> We are currently evaluating two workarounds — either catching and swallowing 
> the exception from addObject(), or finding an alternative path to destroy the 
> object without triggering pool replenishment. Neither approach is clean, and 
> both carry trade-offs for our downstream users.
>
> We would like to raise the question of whether it would be feasible to make 
> the addObject() call within invalidateObject() optional — for instance, 
> controlled by a configuration flag — so that pools backed by fallible 
> factories are not adversely impacted.
> We are happy to contribute a patch or participate in the design discussion if 
> that would be helpful.
>
> Thank you for your time and for maintaining this library.ali takavci

Hello Ali,

Thank you for your report.

POOL-424 was fixed in 2.13.0, not 2.13.1. Are you sure your issue
started with 2.13.1 and not 2.13.0?

I want to make sure we get the baseline right.

Thank you.
Gary

>
>
>
> |
> |
> |  |
> - ASF Jira
>
>
>  |
>
>  |
>
>  |
>
>
>
>
>
> |
> |
> |
> |  |  |
>
>  |
>
>  |
> |
> |  |
> Ensure that invalidateObject replaces destroyed instance. JIRA: POOL-424...
>
> Apache Commons Pool. Contribute to apache/commons-pool development by 
> creating an account on GitHub.
>  |
>
>  |
>
>  |
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to