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

ppalaga pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new 9e5b715  Intermittent failures in MongoDbTest.testTailingConsumer() 
and MongoDbTest.testPersistentTailingConsumer() #2658
9e5b715 is described below

commit 9e5b7150f5c921ad9e87c538c18157ec750a5751
Author: JiriOndrusek <ondrusek.j...@gmail.com>
AuthorDate: Tue Jun 8 12:19:16 2021 +0200

    Intermittent failures in MongoDbTest.testTailingConsumer() and 
MongoDbTest.testPersistentTailingConsumer() #2658
---
 .../component/mongodb/it/MongoDbResource.java       | 16 +++++++++++++---
 .../quarkus/component/mongodb/it/MongoDbRoute.java  |  8 ++++----
 .../quarkus/component/mongodb/it/MongoDbTest.java   | 21 ++++++++++++---------
 3 files changed, 29 insertions(+), 16 deletions(-)

diff --git 
a/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbResource.java
 
b/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbResource.java
index e3d274e..693922f 100644
--- 
a/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbResource.java
+++ 
b/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbResource.java
@@ -181,21 +181,31 @@ public class MongoDbResource {
     }
 
     @GET
-    @Path("/resultsReset/{resultId}")
+    @Path("/results/{resultId}")
     @Produces(MediaType.APPLICATION_JSON)
-    public Map getResultsAndReset(@PathParam("resultId") String resultId) {
+    public Map getResults(@PathParam("resultId") String resultId) {
         final List<Document> list = results.get(resultId);
         synchronized (list) {
             int size = list.size();
             Document last = null;
             if (!list.isEmpty()) {
                 last = list.get(size - 1);
-                list.clear();
             }
             return CollectionHelper.mapOf("size", size, "last", last);
         }
     }
 
+    @GET
+    @Path("/resultsReset/{resultId}")
+    public void resetResults(@PathParam("resultId") String resultId) {
+        final List<Document> list = results.get(resultId);
+        synchronized (list) {
+            if (!list.isEmpty()) {
+                list.clear();
+            }
+        }
+    }
+
     @Path("/convertMapToDocument")
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
diff --git 
a/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbRoute.java
 
b/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbRoute.java
index 01970bd..ea2cac4 100644
--- 
a/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbRoute.java
+++ 
b/integration-tests/mongodb/src/main/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbRoute.java
@@ -17,9 +17,9 @@
 package org.apache.camel.quarkus.component.mongodb.it;
 
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.inject.Produces;
@@ -78,9 +78,9 @@ public class MongoDbRoute extends RouteBuilder {
     @Named("results")
     Map<String, List<Document>> results() {
         Map<String, List<Document>> result = new HashMap<>();
-        result.put(COLLECTION_TAILING, new CopyOnWriteArrayList<>());
-        result.put(COLLECTION_PERSISTENT_TAILING, new 
CopyOnWriteArrayList<>());
-        result.put(COLLECTION_STREAM_CHANGES, new CopyOnWriteArrayList<>());
+        result.put(COLLECTION_TAILING, new LinkedList<>());
+        result.put(COLLECTION_PERSISTENT_TAILING, new LinkedList<>());
+        result.put(COLLECTION_STREAM_CHANGES, new LinkedList<>());
         return result;
     }
 }
diff --git 
a/integration-tests/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTest.java
 
b/integration-tests/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTest.java
index 612ef49..44312ae 100644
--- 
a/integration-tests/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTest.java
+++ 
b/integration-tests/mongodb/src/test/java/org/apache/camel/quarkus/component/mongodb/it/MongoDbTest.java
@@ -36,7 +36,6 @@ import org.bson.Document;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
@@ -143,7 +142,6 @@ class MongoDbTest {
 
     }
 
-    @Disabled("https://github.com/apache/camel-quarkus/issues/2658";)
     @Test
     public void testTailingConsumer() throws Exception {
         MongoCollection collection = db.getCollection(COLLECTION_TAILING, 
Document.class);
@@ -153,12 +151,11 @@ class MongoDbTest {
 
             //verify continuously
             if (i % CAP_NUMBER == 0) {
-                waitForTailingResults(CAP_NUMBER, "value" + i, 
COLLECTION_TAILING);
+                waitAndResetTailingResults(CAP_NUMBER, "value" + i, 
COLLECTION_TAILING);
             }
         }
     }
 
-    @Disabled("https://github.com/apache/camel-quarkus/issues/2658";)
     @Test
     public void testPersistentTailingConsumer() throws Exception {
         MongoCollection collection = 
db.getCollection(COLLECTION_PERSISTENT_TAILING, Document.class);
@@ -168,7 +165,7 @@ class MongoDbTest {
 
             //verify continuously
             if (i % CAP_NUMBER == 0) {
-                waitForTailingResults(CAP_NUMBER, "value" + i, 
COLLECTION_PERSISTENT_TAILING);
+                waitAndResetTailingResults(CAP_NUMBER, "value" + i, 
COLLECTION_PERSISTENT_TAILING);
             }
         }
 
@@ -183,7 +180,7 @@ class MongoDbTest {
 
             //verify continuously
             if (i % CAP_NUMBER == 0) {
-                waitForTailingResults(CAP_NUMBER, "value" + i, 
COLLECTION_PERSISTENT_TAILING);
+                waitAndResetTailingResults(CAP_NUMBER, "value" + i, 
COLLECTION_PERSISTENT_TAILING);
             }
         }
     }
@@ -214,7 +211,7 @@ class MongoDbTest {
             collection.insertOne(new Document("increasing", 
i).append("string", "value" + i));
         }
 
-        waitForTailingResults(1, "value2", COLLECTION_STREAM_CHANGES);
+        waitAndResetTailingResults(1, "value2", COLLECTION_STREAM_CHANGES);
     }
 
     @Test
@@ -279,14 +276,20 @@ class MongoDbTest {
 
     }
 
-    private void waitForTailingResults(int expectedSize, String laststring, 
String resultId) {
+    private void waitAndResetTailingResults(int expectedSize, String 
laststring, String resultId) {
         await().atMost(5, TimeUnit.SECONDS).until(
                 () -> RestAssured
                         .given().contentType(ContentType.JSON)
-                        .get("/mongodb/resultsReset/" + resultId)
+                        .get("/mongodb/results/" + resultId)
                         .then()
                         .statusCode(200)
                         .extract().as(Map.class),
                 m -> ((int) m.get("size") == expectedSize && 
laststring.equals(((Map) m.get("last")).get("string"))));
+
+        RestAssured
+                .given().contentType(ContentType.JSON)
+                .get("/mongodb/resultsReset/" + resultId)
+                .then()
+                .statusCode(204);
     }
 }

Reply via email to