Ensure ExecutorService used in test is shutdown Change-Id: Ic757b4cc1edb5c02b4be8c9ef7abfaaaf63ac410
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java index 4414cec..e25a5d6 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationIT.java
@@ -34,7 +34,7 @@ import java.util.List; import java.util.Optional; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; @@ -266,30 +266,32 @@ .schedule(0, TimeUnit.SECONDS); CountDownLatch latch = new CountDownLatch(1); - Executor service = Executors.newSingleThreadExecutor(); - service.execute( - new Runnable() { - @Override - public void run() { - try { - future.get(); - state.waitForReplication(); - latch.countDown(); - } catch (Exception e) { - // fails the test because we don't countDown + try (ExecutorService service = Executors.newSingleThreadExecutor()) { + service.execute( + new Runnable() { + @Override + public void run() { + try { + future.get(); + state.waitForReplication(); + latch.countDown(); + } catch (Exception e) { + // fails the test because we don't countDown + } } - } - }); + }); - // Cancel the replication task - waitUntil(() -> getProjectTasks().size() != 0); - WorkQueue.Task<?> task = getProjectTasks().get(0); - assertThat(task.getState()).isAnyOf(WorkQueue.Task.State.READY, WorkQueue.Task.State.SLEEPING); - task.cancel(false); + // Cancel the replication task + waitUntil(() -> getProjectTasks().size() != 0); + WorkQueue.Task<?> task = getProjectTasks().get(0); + assertThat(task.getState()) + .isAnyOf(WorkQueue.Task.State.READY, WorkQueue.Task.State.SLEEPING); + task.cancel(false); - // Confirm our waiting thread completed - boolean receivedSignal = latch.await(5, TimeUnit.SECONDS); // FIXME Choose a good timeout - assertThat(receivedSignal).isTrue(); + // Confirm our waiting thread completed + boolean receivedSignal = latch.await(5, TimeUnit.SECONDS); // FIXME Choose a good timeout + assertThat(receivedSignal).isTrue(); + } } private List<WorkQueue.Task<?>> getProjectTasks() {