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

commit 4a7527e579ca0cf0833b9667f29e944b915ea3ee
Author: Peter Palaga <[email protected]>
AuthorDate: Fri Jun 4 23:49:20 2021 +0200

    Fixup 8ce5068 Intermittent failures in MongoDbTest.testTailingConsumer() 
#2658
---
 .../quarkus/component/mongodb/it/MongoDbResource.java     | 12 ++++++------
 .../camel/quarkus/component/mongodb/it/MongoDbRoute.java  | 15 +++++++++------
 2 files changed, 15 insertions(+), 12 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 cf01d65..e3d274e 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
@@ -184,14 +184,14 @@ public class MongoDbResource {
     @Path("/resultsReset/{resultId}")
     @Produces(MediaType.APPLICATION_JSON)
     public Map getResultsAndReset(@PathParam("resultId") String resultId) {
-        synchronized (results) {
-            int size = results.get(resultId).size();
+        final List<Document> list = results.get(resultId);
+        synchronized (list) {
+            int size = list.size();
             Document last = null;
-            if (!results.get(resultId).isEmpty()) {
-                last = results.get(resultId).get(size - 1);
-                results.get(resultId).clear();
+            if (!list.isEmpty()) {
+                last = list.get(size - 1);
+                list.clear();
             }
-
             return CollectionHelper.mapOf("size", size, "last", last);
         }
     }
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 50d27cc..d0746d3 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
@@ -45,8 +45,9 @@ public class MongoDbRoute extends RouteBuilder {
         
from(String.format("mongodb:%s?database=test&collection=%s&tailTrackIncreasingField=increasing",
                 MongoDbResource.DEFAULT_MONGO_CLIENT_NAME, COLLECTION_TAILING))
                         .process(e -> {
-                            synchronized (results) {
-                                
results.get(COLLECTION_TAILING).add(e.getMessage().getBody(Document.class));
+                            final List<Document> list = 
results.get(COLLECTION_TAILING);
+                            synchronized (list) {
+                                
list.add(e.getMessage().getBody(Document.class));
                             }
                         });
 
@@ -55,8 +56,9 @@ public class MongoDbRoute extends RouteBuilder {
                 MongoDbResource.DEFAULT_MONGO_CLIENT_NAME, 
COLLECTION_PERSISTENT_TAILING))
                         .id(COLLECTION_PERSISTENT_TAILING)
                         .process(e -> {
-                            synchronized (results) {
-                                
results.get(COLLECTION_PERSISTENT_TAILING).add(e.getMessage().getBody(Document.class));
+                            final List<Document> list = 
results.get(COLLECTION_PERSISTENT_TAILING);
+                            synchronized (list) {
+                                
list.add(e.getMessage().getBody(Document.class));
                             }
                         });
 
@@ -64,8 +66,9 @@ public class MongoDbRoute extends RouteBuilder {
                 MongoDbResource.DEFAULT_MONGO_CLIENT_NAME, 
COLLECTION_STREAM_CHANGES))
                         .routeProperty("streamFilter", 
"{'$match':{'$or':[{'fullDocument.string': 'value2'}]}}")
                         .process(e -> {
-                            synchronized (results) {
-                                
results.get(COLLECTION_STREAM_CHANGES).add(e.getMessage().getBody(Document.class));
+                            final List<Document> list = 
results.get(COLLECTION_STREAM_CHANGES);
+                            synchronized (list) {
+                                
list.add(e.getMessage().getBody(Document.class));
                             }
                         });
     }

Reply via email to