@Override public LockRefreshToken lock(String client, LockRequest request) throws InterruptedException { Preconditions.checkArgument(request.getLockGroupBehavior() == LockGroupBehavior.LOCK_ALL_OR_NONE, "lock() only supports LockGroupBehavior.LOCK_ALL_OR_NONE. Consider using lockAndGetHeldLocks()."); LockResponse result = lockWithFullLockResponse(LockClient.of(client), request); return result.success() ? result.getLockRefreshToken() : null; }
: System.nanoTime() + request.getBlockingDuration().toNanos(); if (request.getBlockingMode() == BLOCK_UNTIL_TIMEOUT) { if (request.getLockGroupBehavior() == LOCK_AS_MANY_AS_POSSIBLE) { tryLocks(client, request, DO_NOT_BLOCK, null, LOCK_AS_MANY_AS_POSSIBLE, locks, failedLocks); request.getLockGroupBehavior(), locks, failedLocks); if (locks.isEmpty() || ((request.getLockGroupBehavior() == LOCK_ALL_OR_NONE) && (locks.size() < request.getLockDescriptors().size()))) { if (log.isTraceEnabled()) {
public static SimpleLockRequest of(LockRequest request, String lockDescriptor, LockMode lockMode, String clientId) { return ImmutableSimpleLockRequest.builder() .lockDescriptor(lockDescriptor) .lockMode(lockMode) .lockCount(request.getLocks().size()) .lockTimeout(request.getLockTimeout().toMillis()) .lockGroupBehavior(request.getLockGroupBehavior()) .blockingMode(request.getBlockingMode()) .blockingDuration(extractBlockingDurationOrNull(request.getBlockingDuration())) .versionId(request.getVersionId()) .creatingThread(request.getCreatingThreadName()) .clientId(clientId).build(); }
if ((request.getLockGroupBehavior() == LockGroupBehavior.LOCK_ALL_OR_NONE) && (request.getBlockingMode() != BlockingMode.BLOCK_INDEFINITELY_THEN_RELEASE)) { LockRequest.Builder newRequest = LockRequest.builder(request.getLockDescriptors());
if ((request.getLockGroupBehavior() == LockGroupBehavior.LOCK_ALL_OR_NONE) && (request.getBlockingMode() != BlockingMode.BLOCK_INDEFINITELY_THEN_RELEASE)) { LockRequest.Builder newRequest = LockRequest.builder(request.getLockDescriptors());