[
https://issues.apache.org/jira/browse/POOL-212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Thomas updated POOL-212:
-----------------------------
Fix Version/s: 2.0
Fixed for 2.x by using maxIdle in place of minIdle if minIdle > maxIdle.
I'll look into porting this to 1.6.x and 1.5.x next.
> 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: 2.0
>
>
> 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