In pool 1.2, 1.4, borrowObject, returnObject, invalidateObject are not fully synchronized. This creates the potential for race conditions vis a vis the Evictor and/or client object lock contention. Factory methods on pooled objects should not be allowed to be invoked concurrently by client threads and the Evictor.
Description
In pool 1.2, 1.4, borrowObject, returnObject, invalidateObject are not fully synchronized. This creates the potential for race conditions vis a vis the Evictor and/or client object lock contention. Factory methods on pooled objects should not be allowed to be invoked concurrently by client threads and the Evictor.