{@inheritDoc}
<p>
If {@link #getMaxIdle() maxIdle} is set to a positive value and the
number of idle instances has reached this value, the returning instance
is destroyed.
</p>
<p>
If {@link #getTestOnReturn() testOnReturn} == true, the returning
instance is validated before being returned to the idle instance pool. In
this case, if validation fails, the instance is destroyed.
</p>
<p>
Exceptions encountered destroying objects for any reason are swallowed
but notified via a {@link SwallowedExceptionListener}.
</p>
{@inheritDoc} <p> If {@link #getMaxIdle() maxIdle} is set to a positive value and the number of idle instances has reached this value, the returning instance is destroyed. </p> <p> If {@link #getTestOnReturn() testOnReturn} == true, the returning instance is validated before being returned to the idle instance pool. In this case, if validation fails, the instance is destroyed. </p> <p> Exceptions encountered destroying objects for any reason are swallowed but notified via a {@link SwallowedExceptionListener}. </p>