void handleLockBatch(DLockRequestMessage request) throws InterruptedException {
    DLockLessorDepartureHandler handler = dlock.getDLockLessorDepartureHandler();
    // make sure the tx locks of departed members have been cleared so we don't have
    // conflicts with non-existent members. This is done in a waiting-pool thread launched
    // when the member-departure is announced.
    handler.waitForInProcessDepartures();

    waitWhileInitializing();
    if (request.checkForTimeout()) {
      cleanupSuspendState(request);
      return;
    }
    if (acquireDestroyReadLock(0)) {
      try {
        synchronized (batchLocks) { // assures serial processing
          final boolean isTraceEnabled_DLS = logger.isTraceEnabled(LogMarker.DLS_VERBOSE);
          if (isTraceEnabled_DLS) {
            logger.trace(LogMarker.DLS_VERBOSE, "[DLockGrantor.handleLockBatch]");
          }

          checkDestroyed();
          if (isTraceEnabled_DLS) {
            logger.trace(LogMarker.DLS_VERBOSE, "[DLockGrantor.handleLockBatch] request: {}",
                request);
          }

          DLockBatch batch = (DLockBatch) request.getObjectName();
          checkIfHostDeparted(batch.getOwner());
          makeReservation(batch);
          if (isTraceEnabled_DLS) {
            logger.trace(LogMarker.DLS_VERBOSE, "[DLockGrantor.handleLockBatch] granting {}",
                batch.getBatchId());
          }
          batchLocks.put(batch.getBatchId(), batch);
          request.respondWithGrant(Long.MAX_VALUE);
        }
      } catch (CommitConflictException ex) {
        request.respondWithTryLockFailed(ex.getMessage());
      } finally {
        releaseDestroyReadLock();
      }
    } else {
      waitUntilDestroyed();
      checkDestroyed();
    }
  }
Handles request for a batch of locks using optimization for transactions.
<p>
Acquires destroy read lock before synchronizing on {@link #batchLocks}.
If read lock not acquired, wait for the Grantor to be destroyed.

@throws LockGrantorDestroyedException if grantor is destroyed
geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockGrantor.java