Not a bug as such, but a potential bug.
ConnectionPool.initialiseObject()
This method tests a JDBC connection with a simple
query and replaces it with a new connection if the query
fails. This is mainly to cope with timed out TCP
connections or database restarts.
However, if the connection fails it doesn't re-test the
replacement connection. It is possible that some JDBC
driver will allow the creation of a connection even if the
database is in some kind of error state so the new
connection ought to be tested too.
Suggest putting the test routine in a private method so
it can be called at two places in initialiseObject.