code: public void reacquireLock (NodeObject.Lock lock)
      {
          // make sure we're releasing it
          LockHandler handler = _locks.get(lock);
          if (handler == null || !Objects.equal(handler.getNodeName(), _nodeName) ||
                  handler.isAcquiring()) {
              log.warning("Tried to reacquire lock not being released", "lock", lock,
                          "handler", handler);
              return;
          }
  
          // perform an update to let other nodes know that we're reacquiring
          _nodeobj.updateLocks(lock);
  
          // cancel the handler and report to any listeners
          _locks.remove(lock);
          handler.cancel();
          handler.listeners.requestCompleted(_nodeName);
      }
docs: Reacquires a lock after a call to {@link #releaseLock} but before the result listener
  supplied to that method has been notified with the result of the action.  The result
  listener will receive the name of this node to indicate that the lock is still held.  If a
  node requests to release a lock, then receives a lock-related request from another peer, it
  can use this method to cancel the release reliably, since the lock-related request will have
  been sent before the peer's ratification of the release.