Try to fix flaky test KillTaskIT#killTask()

The test was listing all tasks and then tried to kill the first task
from the list. Sometimes this was a short-living task that didn't exist
anymore when the delete was executed. In this case the response was 404
and not as expected 204, so that the test failed with:

killTaskTests_inOrder(com.google.gerrit.acceptance.rest.config.KillTaskIT)
java.lang.AssertionError: Expected status code 204: Not true that <404> is equal to <204>
  at com.google.gerrit.acceptance.RestResponse.assertStatus(RestResponse.java:45)
  at com.google.gerrit.acceptance.RestResponse.assertNoContent(RestResponse.java:65)
  at com.google.gerrit.acceptance.rest.config.KillTaskIT.killTask(KillTaskIT.java:37)
  at com.google.gerrit.acceptance.rest.config.KillTaskIT.killTaskTests_inOrder(KillTaskIT.java:60)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  ...

Instead of attempting to delete the first task from the list, always
delete the "Log File Compressor" task, which should be always present.

Change-Id: I46708710769a70eea81336e3c6a9ac8febf2b52a
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/KillTaskIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/KillTaskIT.java
index ece30e9..f05ecce 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/KillTaskIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/config/KillTaskIT.java
@@ -15,12 +15,15 @@
 package com.google.gerrit.acceptance.rest.config;
 
 import static com.google.common.truth.Truth.assertThat;
+import static java.util.stream.Collectors.toSet;
 
 import com.google.gerrit.acceptance.AbstractDaemonTest;
 import com.google.gerrit.acceptance.RestResponse;
 import com.google.gerrit.server.config.ListTasks.TaskInfo;
 import com.google.gson.reflect.TypeToken;
 import java.util.List;
+import java.util.Optional;
+import java.util.Set;
 import org.junit.Test;
 
 public class KillTaskIT extends AbstractDaemonTest {
@@ -30,17 +33,24 @@
     List<TaskInfo> result =
         newGson().fromJson(r.getReader(), new TypeToken<List<TaskInfo>>() {}.getType());
     r.consume();
-    int taskCount = result.size();
-    assertThat(taskCount).isGreaterThan(0);
 
-    r = adminRestSession.delete("/config/server/tasks/" + result.get(0).id);
+    Optional<String> id =
+        result
+            .stream()
+            .filter(t -> "Log File Compressor".equals(t.command))
+            .map(t -> t.id)
+            .findFirst();
+    assertThat(id.isPresent()).isTrue();
+
+    r = adminRestSession.delete("/config/server/tasks/" + id.get());
     r.assertNoContent();
     r.consume();
 
     r = adminRestSession.get("/config/server/tasks/");
     result = newGson().fromJson(r.getReader(), new TypeToken<List<TaskInfo>>() {}.getType());
     r.consume();
-    assertThat(result).hasSize(taskCount - 1);
+    Set<String> ids = result.stream().map(t -> t.id).collect(toSet());
+    assertThat(ids).doesNotContain(id.get());
   }
 
   private void killTask_NotFound() throws Exception {