summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Milanesio <luca.milanesio@gmail.com>2021-10-14 08:15:02 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-10-14 08:15:02 +0000
commit220d9cf6be1a7498d1bee670ef63911f15c47fbf (patch)
treefc649d2e1c502b2bd56ca7c459151e59823052c5
parentae5a943a861cc6ee14d6ab10e9c87c3ddbae4a60 (diff)
parent7b131cdbafdb80fd3dc68c6f3aa12a9d711cc9e3 (diff)
Merge "Reuse the already opened Repository for refs filtering" into stable-3.3
-rw-r--r--java/com/google/gerrit/server/permissions/DefaultRefFilter.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/java/com/google/gerrit/server/permissions/DefaultRefFilter.java b/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
index eca30b60c8..03d3b63c74 100644
--- a/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
+++ b/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
@@ -142,7 +142,7 @@ class DefaultRefFilter {
return ImmutableList.of();
}
if (RefNames.isRefsChanges(refName)) {
- boolean isChangeRefVisisble = canSeeSingleChangeRef(refName);
+ boolean isChangeRefVisisble = canSeeSingleChangeRef(repo, refName);
if (isChangeRefVisisble) {
logger.atFinest().log("Change ref %s is visible", refName);
return refs;
@@ -466,7 +466,8 @@ class DefaultRefFilter {
* with refs-in-wants is used as that enables Gerrit to skip traditional advertisement of all
* visible refs.
*/
- private boolean canSeeSingleChangeRef(String refName) throws PermissionBackendException {
+ private boolean canSeeSingleChangeRef(Repository repo, String refName)
+ throws PermissionBackendException {
// We are treating just a single change ref. We are therefore not going through regular ref
// filtering, but use NoteDb directly. This makes it so that we can always serve this ref
// even if the change is not part of the set of most recent changes that
@@ -480,7 +481,7 @@ class DefaultRefFilter {
}
ChangeNotes notes;
try {
- notes = changeNotesFactory.create(projectState.getNameKey(), cId);
+ notes = changeNotesFactory.create(repo, projectState.getNameKey(), cId);
} catch (StorageException e) {
throw new PermissionBackendException("can't construct change notes", e);
}