[ 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