@Override @Nullable public HeldLocksGrant refreshGrant(HeldLocksGrant grant) { Preconditions.checkNotNull(grant); @Nullable HeldLocks<HeldLocksGrant> heldLocks = heldLocksGrantMap.get(grant); if (heldLocks == null) { if (log.isTraceEnabled()) { log.trace(".refreshGrant({}) returns null", grant.getGrantId().toString(Character.MAX_RADIX)); } return null; } long now = currentTimeMillis(); long expirationDateMs = now + heldLocks.realToken.getLockTimeout().toMillis(); heldLocksGrantMap.replace(grant, heldLocks, new HeldLocks<HeldLocksGrant>( heldLocks.realToken.refresh(expirationDateMs), heldLocks.locks)); heldLocks = heldLocksGrantMap.get(grant); if (heldLocks == null) { if (log.isTraceEnabled()) { log.trace(".refreshGrant({}) returns null", grant.getGrantId().toString(Character.MAX_RADIX)); } return null; } HeldLocksGrant refreshedGrant = heldLocks.realToken; logIfAbnormallyOld(refreshedGrant, now); if (log.isTraceEnabled()) { log.trace(".refreshGrant({}) returns {}", grant.getGrantId().toString(Character.MAX_RADIX), refreshedGrant.getGrantId().toString(Character.MAX_RADIX)); } return refreshedGrant; }