The object pool implementation increases the size of the pool to the maximum. Instead of throwing an exception, when the maximum is reached, it makes the client wait until an object is returned to the pool and then gives the newly returned object to the waiting client. The connection pool implementation does not require, a maximum size parameter – it will keep creating new connections as and when required in order to meet demand eventually it will hit some system limit resulting in the failure in some way that isn’t specified.