You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ro...@apache.org on 2019/06/17 13:02:28 UTC

[james-project] 04/05: JAMES-2788 release threads in MemoryTaskManagerTest

This is an automated email from the ASF dual-hosted git repository.

rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 5d316eedc646a08f0e9826c1de1f556ff57be2a3
Author: RĂ©mi Kowalski <rk...@linagora.com>
AuthorDate: Tue Jun 11 16:04:37 2019 +0200

    JAMES-2788 release threads in MemoryTaskManagerTest
---
 .../apache/james/task/MemoryTaskManagerTest.java   | 54 ++++++++--------------
 1 file changed, 20 insertions(+), 34 deletions(-)

diff --git a/server/task/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java b/server/task/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java
index 3533eb3..c2166cd 100644
--- a/server/task/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java
+++ b/server/task/src/test/java/org/apache/james/task/MemoryTaskManagerTest.java
@@ -41,14 +41,17 @@ import org.junit.jupiter.api.Test;
 class MemoryTaskManagerTest {
 
     private MemoryTaskManager memoryTaskManager;
+    private CountDownLatch waitingForResultLatch;
 
     @BeforeEach
     void setUp() {
         memoryTaskManager = new MemoryTaskManager();
+        waitingForResultLatch = new CountDownLatch(1);
     }
 
     @AfterEach
     void tearDown() {
+        waitingForResultLatch.countDown();
         memoryTaskManager.stop();
     }
 
@@ -70,10 +73,8 @@ class MemoryTaskManagerTest {
 
     @Test
     void getStatusShouldReturnWaitingWhenNotYetProcessed() {
-        CountDownLatch task1Latch = new CountDownLatch(1);
-
         memoryTaskManager.submit(() -> {
-            await(task1Latch);
+            waitForResult();
             return Task.Result.COMPLETED;
         });
 
@@ -86,19 +87,17 @@ class MemoryTaskManagerTest {
     @Test
     void taskCodeAfterCancelIsNotRun() {
         CountDownLatch waitForTaskToBeLaunched = new CountDownLatch(1);
-        CountDownLatch task1Latch = new CountDownLatch(1);
         AtomicInteger count = new AtomicInteger(0);
 
         TaskId id = memoryTaskManager.submit(() -> {
             waitForTaskToBeLaunched.countDown();
-            await(task1Latch);
+            waitForResult();
             count.incrementAndGet();
             return Task.Result.COMPLETED;
         });
 
         await(waitForTaskToBeLaunched);
         memoryTaskManager.cancel(id);
-        task1Latch.countDown();
 
         assertThat(count.get()).isEqualTo(0);
     }
@@ -177,10 +176,8 @@ class MemoryTaskManagerTest {
 
     @Test
     void cancelShouldBeIdempotent() {
-        CountDownLatch task1Latch = new CountDownLatch(1);
-
         TaskId id = memoryTaskManager.submit(() -> {
-            await(task1Latch);
+            waitForResult();
             return Task.Result.COMPLETED;
         });
         awaitUntilTaskHasStatus(id, TaskManager.Status.IN_PROGRESS);
@@ -191,21 +188,17 @@ class MemoryTaskManagerTest {
 
     @Test
     void getStatusShouldReturnInProgressWhenProcessingIsInProgress() {
-        CountDownLatch latch1 = new CountDownLatch(1);
-
         TaskId taskId = memoryTaskManager.submit(() -> {
-            await(latch1);
+            waitForResult();
             return Task.Result.COMPLETED;
         });
         awaitUntilTaskHasStatus(taskId, TaskManager.Status.IN_PROGRESS);
         assertThat(memoryTaskManager.getExecutionDetails(taskId).getStatus())
             .isEqualTo(TaskManager.Status.IN_PROGRESS);
-        latch1.countDown();
     }
 
     @Test
     void getStatusShouldReturnCompletedWhenRunSuccessfully() {
-
         TaskId taskId = memoryTaskManager.submit(
             () -> Task.Result.COMPLETED);
 
@@ -216,7 +209,6 @@ class MemoryTaskManagerTest {
 
     @Test
     void getStatusShouldReturnFailedWhenRunPartially() {
-
         TaskId taskId = memoryTaskManager.submit(
             () -> Task.Result.PARTIAL);
 
@@ -231,7 +223,6 @@ class MemoryTaskManagerTest {
         SoftAssertions softly = new SoftAssertions();
 
         CountDownLatch latch1 = new CountDownLatch(1);
-        CountDownLatch latch2 = new CountDownLatch(1);
 
         TaskId failedId = memoryTaskManager.submit(
             () -> Task.Result.PARTIAL);
@@ -240,7 +231,7 @@ class MemoryTaskManagerTest {
         TaskId inProgressId = memoryTaskManager.submit(
             () -> {
                 latch1.countDown();
-                await(latch2);
+                waitForResult();
                 return Task.Result.COMPLETED;
             });
         TaskId waitingId = memoryTaskManager.submit(
@@ -258,7 +249,6 @@ class MemoryTaskManagerTest {
             .isEqualTo(TaskManager.Status.COMPLETED);
         softly.assertThat(entryWithId(list, inProgressId))
             .isEqualTo(TaskManager.Status.IN_PROGRESS);
-        latch2.countDown();
     }
 
     private TaskManager.Status entryWithId(List<TaskExecutionDetails> list, TaskId taskId) {
@@ -272,7 +262,6 @@ class MemoryTaskManagerTest {
     void listShouldAllowToSeeWaitingTasks() throws Exception {
         CountDownLatch latch1 = new CountDownLatch(1);
         CountDownLatch latch2 = new CountDownLatch(1);
-        CountDownLatch latch3 = new CountDownLatch(1);
 
         memoryTaskManager.submit(
             () -> Task.Result.PARTIAL);
@@ -282,12 +271,12 @@ class MemoryTaskManagerTest {
             () -> {
                 await(latch1);
                 latch2.countDown();
-                await(latch3);
+                waitForResult();
                 return Task.Result.COMPLETED;
             });
         TaskId waitingId = memoryTaskManager.submit(
             () -> {
-                await(latch3);
+                waitForResult();
                 latch2.countDown();
                 return Task.Result.COMPLETED;
             });
@@ -298,14 +287,12 @@ class MemoryTaskManagerTest {
         assertThat(memoryTaskManager.list(TaskManager.Status.WAITING))
             .extracting(TaskExecutionDetails::getTaskId)
             .containsOnly(waitingId);
-        latch3.countDown();
     }
 
     @Test
     void listShouldAllowToSeeInProgressTasks() throws Exception {
         CountDownLatch latch1 = new CountDownLatch(1);
         CountDownLatch latch2 = new CountDownLatch(1);
-        CountDownLatch latch3 = new CountDownLatch(1);
 
         memoryTaskManager.submit(
             () -> Task.Result.PARTIAL);
@@ -315,12 +302,12 @@ class MemoryTaskManagerTest {
             () -> {
                 await(latch1);
                 latch2.countDown();
-                await(latch3);
+                waitForResult();
                 return Task.Result.COMPLETED;
             });
         memoryTaskManager.submit(
             () -> {
-                await(latch3);
+                waitForResult();
                 latch2.countDown();
                 return Task.Result.COMPLETED;
             });
@@ -331,14 +318,12 @@ class MemoryTaskManagerTest {
         assertThat(memoryTaskManager.list(TaskManager.Status.COMPLETED))
             .extracting(TaskExecutionDetails::getTaskId)
             .containsOnly(successfulId);
-        latch3.countDown();
     }
 
     @Test
     void listShouldAllowToSeeFailedTasks() throws Exception {
         CountDownLatch latch1 = new CountDownLatch(1);
         CountDownLatch latch2 = new CountDownLatch(1);
-        CountDownLatch latch3 = new CountDownLatch(1);
 
         TaskId failedId = memoryTaskManager.submit(
             () -> Task.Result.PARTIAL);
@@ -348,12 +333,12 @@ class MemoryTaskManagerTest {
             () -> {
                 await(latch1);
                 latch2.countDown();
-                await(latch3);
+                waitForResult();
                 return Task.Result.COMPLETED;
             });
         memoryTaskManager.submit(
             () -> {
-                await(latch3);
+                waitForResult();
                 latch2.countDown();
                 return Task.Result.COMPLETED;
             });
@@ -364,14 +349,12 @@ class MemoryTaskManagerTest {
         assertThat(memoryTaskManager.list(TaskManager.Status.FAILED))
             .extracting(TaskExecutionDetails::getTaskId)
             .containsOnly(failedId);
-        latch3.countDown();
     }
 
     @Test
     void listShouldAllowToSeeSuccessfulTasks() throws Exception {
         CountDownLatch latch1 = new CountDownLatch(1);
         CountDownLatch latch2 = new CountDownLatch(1);
-        CountDownLatch latch3 = new CountDownLatch(1);
 
         memoryTaskManager.submit(
             () -> Task.Result.PARTIAL);
@@ -381,12 +364,12 @@ class MemoryTaskManagerTest {
             () -> {
                 await(latch1);
                 latch2.countDown();
-                await(latch3);
+                waitForResult();
                 return Task.Result.COMPLETED;
             });
         memoryTaskManager.submit(
             () -> {
-                await(latch3);
+                waitForResult();
                 latch2.countDown();
                 return Task.Result.COMPLETED;
             });
@@ -397,7 +380,6 @@ class MemoryTaskManagerTest {
         assertThat(memoryTaskManager.list(TaskManager.Status.IN_PROGRESS))
             .extracting(TaskExecutionDetails::getTaskId)
             .containsOnly(inProgressId);
-        latch3.countDown();
     }
 
     @Test
@@ -503,6 +485,10 @@ class MemoryTaskManagerTest {
         }
     }
 
+    private void waitForResult() {
+        await(waitingForResultLatch);
+    }
+
     private void awaitUntilTaskHasStatus(TaskId id, TaskManager.Status status) {
         awaitAtMostOneSecond.until(() -> memoryTaskManager.getExecutionDetails(id).getStatus().equals(status));
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org