catch (InterruptedException e) {
throw new SQLException("Interrupted during connection acquisition", e);
}
finally {
acquisitionSemaphore.release();
metricsContext.stop();
}
logPoolState("Timeout failure ");
throw new SQLException(String.format("Timeout after %dms of waiting for a connection.", elapsedTimeMs(start)), lastConnectionFailure.getAndSet(null));
}