Merge "Return code-owners~skip-validation option only if OWNERS files are touched"
diff --git a/java/com/google/gerrit/plugins/codeowners/validation/CodeOwnerConfigValidator.java b/java/com/google/gerrit/plugins/codeowners/validation/CodeOwnerConfigValidator.java
index 8411568..1a08131 100644
--- a/java/com/google/gerrit/plugins/codeowners/validation/CodeOwnerConfigValidator.java
+++ b/java/com/google/gerrit/plugins/codeowners/validation/CodeOwnerConfigValidator.java
@@ -306,15 +306,15 @@
       } else {
         try (InMemoryInserter ins = new InMemoryInserter(repository);
             ObjectReader reader = ins.newReader();
-            RevWalk rw = new RevWalk(reader)) {
+            RevWalk rw = new RevWalk(reader);
+            RepoView repoView = new RepoView(repository, rw, ins)) {
           ChangeNotes changeNotes =
               changeNotesFactory.create(projectState.getNameKey(), commit.change().getId());
           PatchSet patchSet = patchSetUtil.get(changeNotes, patchSetId);
           IdentifiedUser patchSetUploader = userFactory.create(patchSet.uploader());
           validationResult =
               validateCodeOwnerConfig(
-                  diffOperationsForCommitValidationFactory.create(
-                      new RepoView(repository, rw, ins), ins),
+                  diffOperationsForCommitValidationFactory.create(repoView, ins),
                   branchNameKey,
                   commit,
                   patchSetUploader,
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigValidatorTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigValidatorTest.java
index c3dece0..479ad1d 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigValidatorTest.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigValidatorTest.java
@@ -66,7 +66,8 @@
             new TestRepository<>(repoManager.openRepository(project));
         ObjectInserter ins = testRepo.getRepository().newObjectInserter();
         ObjectReader reader = ins.newReader();
-        RevWalk revWalk = new RevWalk(reader)) {
+        RevWalk revWalk = new RevWalk(reader);
+        RepoView repoView = new RepoView(testRepo.getRepository(), revWalk, ins)) {
       RevCommit commit =
           testRepo
               .commit()
@@ -74,20 +75,21 @@
               .add("project.config", "INVALID")
               .create();
 
-      CommitReceivedEvent receiveEvent = new CommitReceivedEvent();
-      receiveEvent.project =
-          projectCache.get(project).orElseThrow(illegalState(project)).getProject();
-      receiveEvent.refName = RefNames.REFS_CONFIG;
-      receiveEvent.commit = commit;
-      receiveEvent.revWalk = testRepo.getRevWalk();
-      receiveEvent.repoConfig = new Config();
-      receiveEvent.diffOperations =
-          diffOperationsForCommitValidationFactory.create(
-              new RepoView(testRepo.getRepository(), revWalk, ins), ins);
-      CommitValidationException exception =
-          assertThrows(
-              CommitValidationException.class,
-              () -> codeOwnersPluginConfigValidator.onCommitReceived(receiveEvent));
+      CommitValidationException exception;
+      try (CommitReceivedEvent receiveEvent = new CommitReceivedEvent()) {
+        receiveEvent.project =
+            projectCache.get(project).orElseThrow(illegalState(project)).getProject();
+        receiveEvent.refName = RefNames.REFS_CONFIG;
+        receiveEvent.commit = commit;
+        receiveEvent.revWalk = testRepo.getRevWalk();
+        receiveEvent.repoConfig = new Config();
+        receiveEvent.diffOperations =
+            diffOperationsForCommitValidationFactory.create(repoView, ins);
+        exception =
+            assertThrows(
+                CommitValidationException.class,
+                () -> codeOwnersPluginConfigValidator.onCommitReceived(receiveEvent));
+      }
       assertThat(exception)
           .hasMessageThat()
           .isEqualTo(