[ 
https://issues.apache.org/jira/browse/POOL-270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14104793#comment-14104793
 ] 

Michael Berman commented on POOL-270:
-------------------------------------

bq. I don't see anywhere that minEvictableIdleTimeMillis is used to control a 
timer

GenericKeyedObjectPool:112 has 
{{startEvictor(getMinEvictableIdleTimeMillis())}}, and the implementation of 
startEvictor kills any existing evictor and starts a new one with the provided 
period.

It's certainly possible that I'm not understanding the meaning of the 
timeBetweenEvictionRunsMillis parameter. What is it supposed to control? If you 
call {{setTimeBetweenEvictionRunsMillis}} on an extant pool, it seems to set 
the interval between eviction runs, which is what I'd expect. However, that's 
not what it does when it's passed into the constructor as part of a 
GenericKeyedObjectPoolConfig. In that case, I don't see that it does anything 
besides set the field (which is never read), and start the evictor thread that 
will be immediately destroyed at the line referenced above. Could you point me 
to the unit test that demonstrates this working?

> timeBetweenEvictionRunsMillis from config is ignored
> ----------------------------------------------------
>
>                 Key: POOL-270
>                 URL: https://issues.apache.org/jira/browse/POOL-270
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 2.2
>            Reporter: Michael Berman
>
> In the constructors for both GenericObjectPool and GenericKeyedObjectPool, 
> the setting for timeBetweenEvictionRunsMillis is always overridden by 
> minEvictableIdleTimeMillis.
> First setConfig() is called, which, ends up starting an evictor with a period 
> of timeBetweenEvictionRunsMillis, as expected. but the final line of the 
> constructor calls startEvictor() again with minEvictableIdleTimeMillis, which 
> kills the first timer and starts a new one with the new period. This means 
> effectively the timeBetweenEvictionRunsMillis from the config is not used for 
> anything.
> I want testWhileIdle's verifications to run more often than I want the 
> timeout for evicting idle objects, which does not appear to be possible given 
> this bug.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to