SchedulingException,
AuthorizationException {
String creatorID = caller.getIdentity();
final String clientToken = req.getClientToken();
IdempotentReservation res;
final Lock idemLock = idemManager.getLock(creatorID, clientToken);
try {
idemLock.lockInterruptibly();
} catch (InterruptedException e) {
throw new CreationException(e.getMessage(), e);
}
try {
res = this.idemManager.getReservation(creatorID, clientToken);
if (res != null) {
if (logger.isDebugEnabled()) {
logger.debug("Found existing idempotent reservation: " +
res.toString());
}
// the reservation already exists. check its validity
return resolveIdempotentReservation(res, req);