in src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java [57:86]
public boolean isUpToDate(Project.NameKey project, Ref ref) throws GlobalRefDbLockException {
if (!exists(project, ref.getName())) {
return true;
}
try {
final byte[] valueInZk = client.getData().forPath(pathFor(project, ref.getName()));
// Assuming this is a delete node NULL_REF
if (valueInZk == null) {
logger.atFine().log(
"%s:%s not found in Zookeeper, assumed as delete node NULL_REF",
project, ref.getName());
return false;
}
ObjectId objectIdInSharedRefDb = readObjectId(valueInZk);
Boolean isUpToDate = objectIdInSharedRefDb.equals(ref.getObjectId());
if (!isUpToDate) {
logger.atFine().log(
"%s:%s is out of sync: local=%s zk=%s",
project, ref.getName(), ref.getObjectId(), objectIdInSharedRefDb);
}
return isUpToDate;
} catch (Exception e) {
throw new GlobalRefDbLockException(project.get(), ref.getName(), e);
}
}