Avoid passing rootEntry to calculateCurrentEntry() The PathOwners.calculateCurrentEntry() did not use at all the root entry config but simply checked its inheritance flag. Avoid passing the root entry config as parameter and resolve the if/then/else conditional externally. Change-Id: Ie6bc00509b0da680c45e4a02efb68e6c1851eefb
diff --git a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/PathOwners.java b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/PathOwners.java index 85affe7..ce5834c 100644 --- a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/PathOwners.java +++ b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/PathOwners.java
@@ -400,11 +400,15 @@ StringBuilder builder = new StringBuilder(); // Inherit from Project if OWNER in root enables inheritance - calculateCurrentEntry(rootEntry, projectEntry, currentEntry); + if (rootEntry.isInherited()) { + calculateCurrentEntry(projectEntry, currentEntry); + } // Inherit from Parent Project if OWNER in Project enables inheritance for (ReadOnlyPathOwnersEntry parentPathOwnersEntry : parentsPathOwnersEntries) { - calculateCurrentEntry(projectEntry, parentPathOwnersEntry, currentEntry); + if (projectEntry.isInherited()) { + calculateCurrentEntry(parentPathOwnersEntry, currentEntry); + } } // Iterate through the parent paths, not including the file name @@ -455,24 +459,20 @@ } private void calculateCurrentEntry( - ReadOnlyPathOwnersEntry rootEntry, - ReadOnlyPathOwnersEntry projectEntry, - PathOwnersEntry currentEntry) { - if (rootEntry.isInherited()) { - for (Matcher matcher : projectEntry.getMatchers().values()) { - if (!currentEntry.hasMatcher(matcher.getPath())) { - currentEntry.addMatcher(matcher); - } + ReadOnlyPathOwnersEntry projectEntry, PathOwnersEntry currentEntry) { + for (Matcher matcher : projectEntry.getMatchers().values()) { + if (!currentEntry.hasMatcher(matcher.getPath())) { + currentEntry.addMatcher(matcher); } - if (currentEntry.getOwners().isEmpty()) { - currentEntry.setOwners(projectEntry.getOwners()); - } - if (currentEntry.getOwnersPath() == null) { - currentEntry.setOwnersPath(projectEntry.getOwnersPath()); - } - if (currentEntry.getLabel().isEmpty()) { - currentEntry.setLabel(projectEntry.getLabel()); - } + } + if (currentEntry.getOwners().isEmpty()) { + currentEntry.setOwners(projectEntry.getOwners()); + } + if (currentEntry.getOwnersPath() == null) { + currentEntry.setOwnersPath(projectEntry.getOwnersPath()); + } + if (currentEntry.getLabel().isEmpty()) { + currentEntry.setLabel(projectEntry.getLabel()); } }
diff --git a/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersITAbstract.java b/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersITAbstract.java index 826ebdb..ad46da6 100644 --- a/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersITAbstract.java +++ b/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersITAbstract.java
@@ -18,6 +18,7 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.gerrit.testing.GerritJUnit.assertThrows; +import com.google.common.collect.Sets; import com.google.gerrit.acceptance.GitUtil; import com.google.gerrit.acceptance.LightweightPluginDaemonTest; import com.google.gerrit.acceptance.PushOneCommit.Result; @@ -44,7 +45,6 @@ import com.googlesource.gerrit.owners.restapi.GetFilesOwners.LabelNotFoundException; import java.util.Map; import javax.servlet.http.HttpServletResponse; -import com.google.common.collect.Sets; import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository; import org.eclipse.jgit.junit.TestRepository; import org.eclipse.jgit.transport.FetchResult;
diff --git a/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersSubmitRequirementsIT.java b/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersSubmitRequirementsIT.java index bcad86a..3915997 100644 --- a/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersSubmitRequirementsIT.java +++ b/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersSubmitRequirementsIT.java
@@ -19,6 +19,7 @@ import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.allowLabel; import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS; +import com.google.common.collect.Sets; import com.google.gerrit.acceptance.TestPlugin; import com.google.gerrit.acceptance.UseLocalDisk; import com.google.gerrit.acceptance.testsuite.project.ProjectOperations; @@ -36,7 +37,6 @@ import java.nio.file.Files; import java.nio.file.StandardOpenOption; import java.util.Map; -import com.google.common.collect.Sets; import org.eclipse.jgit.lib.Config; import org.junit.Test;