- If maxSize is 0, then
- DefaultConnectionPool.createTimeoutException works incorrectly because it considers the value to be 0 instead of being infinite;
- ConcurrentPool is created with 0 semaphore permits and does not allow creating connections.
- If maxSize is negative, then
- ConcurrentPool creates a semaphore with negative permits, which means connections must be released before they can be created. The ConcurrentPool docs state "if < 0 then no limit".