Hi,
I played around with current org.jboss.pool package and embarked upon what I take for a bug (although it is a matter of what the desired behavior is):
In ObjecPool method runCleanupandShrink before garbage collection occurs method isCleanupEnabled is called. I believe isGCEnabled should be called instead.
isCleanupEnabled returns true in case isGCEnabled is false and isIdleTimeoutEnabled returns true.
It doesn't make sense to me to do a GC when isGCEnabled returns false.
In practical terms the consequence would be that when you set IdleTimeoutEnabled true and GCEnabled false in your .jcml or jboss-service.xml the behaviour will be different from what you would expect.
Regards,
Marko.