I don't think the default implementation has any thing that does what you described (by looking at their API). But you can configure GenericObjectPool to achieve your goal or write logic in your CarPool. Therefore, I assume that ultimately my answer to your question is yes, you will have to deal with it yourself.