synchronized void grantLock(long newLeaseExpireTime, int newLeaseId, int newRecursion,
      RemoteThread remoteThread) {

    Assert.assertTrue(remoteThread != null);
    Assert.assertTrue(newLeaseId > -1, "Invalid attempt to grant lock with leaseId " + newLeaseId);

    checkDestroyed();
    checkForExpiration(); // TODO: this should throw.

    ignoreForRecovery = false;
    leaseExpireTime = newLeaseExpireTime;
    leaseId = newLeaseId;
    lesseeThread = remoteThread;
    recursion = newRecursion;
    thread = Thread.currentThread();

    if (logger.isTraceEnabled(LogMarker.DLS_VERBOSE)) {
      logger.trace(LogMarker.DLS_VERBOSE, "[DLockToken.grantLock.client] granted {}", this);
    }
  }
Grants new lease to calling thread for this lock token. Synchronizes on this lock token.

@param newLeaseExpireTime absolute expiration in millis or Long.MAX_VALUE
@param newLeaseId uniquely identifies the lease for this thread
@param newRecursion recursion count if lock has been re-entered
@param remoteThread identity of the leasing thread
geode-core/src/main/java/org/apache/geode/distributed/internal/locks/DLockToken.java