Merge branch 'stable-3.11'

* stable-3.11:
  API should take into account the configured approval label
  Fix GJF 1.7 formatting on java files

Change-Id: I625d6279a2e1955da186e77badc3688645a489a4
diff --git a/owners/src/main/java/com/googlesource/gerrit/owners/restapi/GetFilesOwners.java b/owners/src/main/java/com/googlesource/gerrit/owners/restapi/GetFilesOwners.java
index 005e83f..1327fcb 100644
--- a/owners/src/main/java/com/googlesource/gerrit/owners/restapi/GetFilesOwners.java
+++ b/owners/src/main/java/com/googlesource/gerrit/owners/restapi/GetFilesOwners.java
@@ -146,13 +146,14 @@
                       fileExpandedOwners.get(fileOwnerEntry.getKey()), ownersLabels, label));
 
       Map<String, Set<GroupOwner>> filesApprovedByOwners =
-              Maps.filterEntries(
-                      fileToOwners,
-                      (fileOwnerEntry) ->
-                              isApprovedByOwner(
-                                      fileExpandedOwners.get(fileOwnerEntry.getKey()), ownersLabels, label));
+          Maps.filterEntries(
+              fileToOwners,
+              (fileOwnerEntry) ->
+                  isApprovedByOwner(
+                      fileExpandedOwners.get(fileOwnerEntry.getKey()), ownersLabels, label));
 
-      return Response.ok(new FilesOwnersResponse(ownersLabels, filesWithPendingOwners, filesApprovedByOwners));
+      return Response.ok(
+          new FilesOwnersResponse(ownersLabels, filesWithPendingOwners, filesApprovedByOwners));
     } catch (InvalidOwnersFileException e) {
       logger.atSevere().withCause(e).log("Reading/parsing OWNERS file error.");
       throw new ResourceConflictException(e.getMessage(), e);
@@ -163,9 +164,7 @@
       throws ResourceNotFoundException {
 
     try {
-      return Optional.of(pluginSettings.enableSubmitRequirement())
-          .filter(Boolean::booleanValue)
-          .flatMap(enabled -> getLabelFromOwners(owners, changeData))
+      return getLabelFromOwners(owners, changeData)
           .orElseGet(
               () ->
                   new LabelAndScore(
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 4593e33..7682434 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
@@ -37,6 +37,7 @@
 import com.google.gerrit.extensions.restapi.Response;
 import com.google.gerrit.server.project.testing.TestLabels;
 import com.googlesource.gerrit.owners.common.InvalidOwnersFileException;
+import com.googlesource.gerrit.owners.common.LabelDefinition;
 import com.googlesource.gerrit.owners.entities.FilesOwnersResponse;
 import com.googlesource.gerrit.owners.entities.GroupOwner;
 import com.googlesource.gerrit.owners.entities.Owner;
@@ -186,6 +187,20 @@
   }
 
   @Test
+  public void shouldNotApproveOwnedFilesWhenCustomLabelInOwnersFileNotProvided() throws Exception {
+    addOwnerFileToRootWithLabel(LabelDefinition.parse("Foo,1").get(), admin);
+    String changeId = createChange().getChangeId();
+    approve(changeId);
+
+    Response<FilesOwnersResponse> resp =
+        assertResponseOk(ownersApi.apply(parseCurrentRevisionResource(changeId)));
+
+    assertThat(resp.value().files)
+        .containsExactly("a.txt", Sets.newHashSet(new Owner(admin.fullName(), admin.id().get())));
+    assertThat(resp.value().filesApproved).isEmpty();
+  }
+
+  @Test
   @UseLocalDisk
   public void shouldReturnInheritedOwnersFromProjectsOwners() throws Exception {
     assertInheritFromProject(project);
@@ -342,6 +357,28 @@
             ""));
   }
 
+  protected void addOwnerFileToRootWithLabel(LabelDefinition label, TestAccount u)
+      throws Exception {
+    // Add OWNERS file to root:
+    //
+    // inherited: true
+    // label: label,score # score is optional
+    // owners:
+    // - u.email()
+    String owners =
+        String.format(
+            "inherited: true\nlabel: %s\nowners:\n- %s\n",
+            String.format(
+                "%s%s",
+                label.getName(),
+                label.getScore().map(value -> String.format(",%d", value)).orElse("")),
+            u.email());
+    pushFactory
+        .create(admin.newIdent(), testRepo, "Add OWNER file", "OWNERS", owners)
+        .to(RefNames.fullName("master"))
+        .assertOkStatus();
+  }
+
   private void addOwnerFileWithMatchersToRoot(boolean inherit) throws Exception {
     addOwnerFileWithMatchers(testRepo, "master", inherit);
   }
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 d45deb5..c316757 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
@@ -65,7 +65,7 @@
   @Test
   public void shouldRequireConfiguredCodeReviewScore() throws Exception {
     // configure submit requirement to require CR+1 only
-    addOwnerFileToRoot(LabelDefinition.parse("Code-Review,1").get(), admin);
+    addOwnerFileToRootWithLabel(LabelDefinition.parse("Code-Review,1").get(), admin);
 
     String changeId = createChange("Add a file", "foo", "bar").getChangeId();
 
@@ -91,7 +91,7 @@
   public void shouldRequireConfiguredLabelAndScore() throws Exception {
     // configure submit requirement to require LabelFoo+1
     String label = "LabelFoo";
-    addOwnerFileToRoot(LabelDefinition.parse(String.format("%s,1", label)).get(), admin);
+    addOwnerFileToRootWithLabel(LabelDefinition.parse(String.format("%s,1", label)).get(), admin);
     replaceCodeReviewWithLabel(label);
 
     String changeId = createChange("Add a file", "foo", "bar").getChangeId();
@@ -113,27 +113,6 @@
         .containsExactly("foo", Sets.newHashSet(new Owner(admin.fullName(), admin.id().get())));
   }
 
-  private void addOwnerFileToRoot(LabelDefinition label, TestAccount u) throws Exception {
-    // Add OWNERS file to root:
-    //
-    // inherited: true
-    // label: label,score # score is optional
-    // owners:
-    // - u.email()
-    String owners =
-        String.format(
-            "inherited: true\nlabel: %s\nowners:\n- %s\n",
-            String.format(
-                "%s%s",
-                label.getName(),
-                label.getScore().map(value -> String.format(",%d", value)).orElse("")),
-            u.email());
-    pushFactory
-        .create(admin.newIdent(), testRepo, "Add OWNER file", "OWNERS", owners)
-        .to(RefNames.fullName("master"))
-        .assertOkStatus();
-  }
-
   private void replaceCodeReviewWithLabel(String labelId) throws Exception {
     LabelType label =
         TestLabels.label(labelId, TestLabels.value(1, "OK"), TestLabels.value(-1, "Not OK"));