fixing thread distribution leak on gotError

If a non recoverable error occurs, and the max pool size has not yet been hit, the gotError method will get all connections in the pool, as well as create new ones isolated to the current thread (close their connections) and release them. This results in a pool that could be over committed with connections isolated to that thread, choking subsequent threads.