in geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/AbstractSinglePoolConnectionInterceptor.java [67:98]
public void getConnection(ConnectionInfo connectionInfo) throws ResourceException {
if (connectionInfo.getManagedConnectionInfo().getManagedConnection() != null) {
if (log.isLoggable(Level.FINEST)) {
log.log(Level.FINEST,"supplying already assigned connection from pool " + this + " " + connectionInfo);
}
return;
}
try {
resizeLock.readLock().lock();
try {
if (permits.tryAcquire(blockingTimeoutMilliseconds, TimeUnit.MILLISECONDS)) {
try {
internalGetConnection(connectionInfo);
} catch (ResourceException e) {
permits.release();
throw e;
}
} else {
throw new ResourceException("No ManagedConnections available "
+ "within configured blocking timeout ( "
+ blockingTimeoutMilliseconds
+ " [ms] ) for pool " + this);
}
} finally {
resizeLock.readLock().unlock();
}
} catch (InterruptedException ie) {
throw new ResourceException("Interrupted while requesting permit.", ie);
} // end of try-catch
}