commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Thomas <>
Subject Re: [pool] preparePool that only registers key, doesn't create new object
Date Mon, 06 Feb 2017 10:55:56 GMT
On 05/02/17 22:21, Gary Gregory wrote:
> Anyone care to opine?

I think there is a bug in ensureMinIdle. If the objectDeque is null, it 
needs to obtain a reference to the objectDeque once created in the for 
loop. Otherwise the call from preparePool will always create 
minIdlePerKey objects regardless of any objects created by the evictor.


> G
> On Fri, Jan 20, 2017 at 7:38 AM, Martin Klepsch <
>> wrote:
>> Hey,
>> With a KeyedObjectPool I can use `setMinIdlePerKey` &  `preparePool` to
>> "bootstrap" an object pool. Now `preparePool` creates new objects
>> synchronously and the evictor thread doesn't seem to ensure min idle
>> objects if there are none yet (since it can't know the keys I guess).
>> Because of that I run into the situation that the evictor thread creates
>> objects for keys that are currently being created by `preparePool`. It's
>> not an absolute deal breaker but it would be nice to be able to register
>> keys without synchronously creating the minimum idle objects. Instead I'd
>> like to wait for the evictor thread to pick up newly registered keys and
>> create the required objects for it.
>> Unfortunately `register` is private and I don't see another way to trigger
>> key-registering. (Calling `preparePool` with `minIdlePerKey` set to 0 will
>> short circuit and not register the key).
>> Any suggestions welcome!
>> Cheers :)

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message