canReadCommit: swap preconditions check to improve performance
It is much cheaper to check READ access on a ref than to check
if a commit is merged into that ref. Therefore, do the checks in
this order and avoid traversal of potentially large commit graph
when we know that the user cannot read that branch.
Change-Id: I008990915e15854100a84b3d795f6c54efe35c81
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java
index c111c02..8ab3311 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java
@@ -506,8 +506,8 @@
} catch (IncorrectObjectTypeException e) {
continue;
}
- if (rw.isMergedInto(commit, tip)
- && controlForRef(entry.getKey()).canPerform(Permission.READ)) {
+ if (controlForRef(entry.getKey()).canPerform(Permission.READ)
+ && rw.isMergedInto(commit, tip)) {
return true;
}
}