[
https://issues.apache.org/jira/browse/POOL-212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Thomas resolved POOL-212.
------------------------------
Resolution: Fixed
Fixed in all current development lines.
> GenericObjectPool allows maxIdle < minIdle
> ------------------------------------------
>
> Key: POOL-212
> URL: https://issues.apache.org/jira/browse/POOL-212
> Project: Commons Pool
> Issue Type: Bug
> Affects Versions: 1.4
> Reporter: Sergejs Melderis
> Priority: Minor
> Fix For: 1.6.1, 2.0, 1.5.8
>
>
> GenericObjectPool allows any values for minIdle and maxIdle, and performs no
> validation on those values.
> It allows maxIdle to be less than minIdle, and that creates weird behavior
> during eviction.
> After each eviction the Evictor thread calls ensureMinIdle() method which
> adds objects the pool using addObjectToPool() to make sure there at least
> minIdle objects in the pool.addObjectToPool() on another hand makes sure that
> there no more then maxIdle objects in the pool, and immediately destroys the
> newly created object.
> In my application we had minIdle configured to 100, but maxIdle wasn't
> configured and used the default value which is 8, and each eviction would
> create and destroy a bunch of objects.
> This issue can be fixed by adding checks in setMinIdle and setMaxIdle, or by
> adding maxIdle variable to the formula used in calculateDevicit() method.
> We use version 1.4, but I also tested it on latest 1.6 and observed the same
> behavior.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira