You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/12/07 10:09:51 UTC

(camel) 13/15: CAMEL-20189: camel-google: Force marking the consumer ready sooner, in case processing exchanges takes too long, causing readiness check to timeout and fail.

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

davsclaus pushed a commit to branch ready
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 56c5c16e55c61869a6bd5c7f253cfb66412003cf
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Dec 7 10:59:25 2023 +0100

    CAMEL-20189: camel-google: Force marking the consumer ready sooner, in case processing exchanges takes too long, causing readiness check to timeout and fail.
---
 .../component/google/mail/stream/GoogleMailStreamConsumer.java |  4 ++++
 .../google/sheets/stream/GoogleSheetsStreamConsumer.java       |  3 +++
 .../component/google/storage/GoogleCloudStorageConsumer.java   | 10 +++++++---
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConsumer.java b/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConsumer.java
index 285c8f37ca1..aba62302a23 100644
--- a/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConsumer.java
+++ b/components/camel-google/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamConsumer.java
@@ -86,6 +86,10 @@ public class GoogleMailStreamConsumer extends ScheduledBatchPollingConsumer {
         Queue<Exchange> answer = new LinkedList<>();
 
         ListMessagesResponse c = request.execute();
+
+        // okay we have some response from Google so lets mark the consumer as ready
+        forceConsumerAsReady();
+
         if (c.getMessages() != null) {
             for (Message message : c.getMessages()) {
                 Message mess = getClient().users().messages().get("me", message.getId()).setFormat("FULL").execute();
diff --git a/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamConsumer.java b/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamConsumer.java
index e6540671fa9..f39cb20a4b3 100644
--- a/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamConsumer.java
+++ b/components/camel-google/camel-google-sheets/src/main/java/org/apache/camel/component/google/sheets/stream/GoogleSheetsStreamConsumer.java
@@ -80,6 +80,9 @@ public class GoogleSheetsStreamConsumer extends ScheduledBatchPollingConsumer {
 
             BatchGetValuesResponse response = request.execute();
 
+            // okay we have some response from Google so lets mark the consumer as ready
+            forceConsumerAsReady();
+
             if (response.getValueRanges() != null) {
                 if (getConfiguration().isSplitResults()) {
                     for (ValueRange valueRange : response.getValueRanges()) {
diff --git a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConsumer.java b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConsumer.java
index ca308e15056..7fa029ad7cc 100644
--- a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConsumer.java
+++ b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConsumer.java
@@ -22,6 +22,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Queue;
 
+import com.google.api.gax.paging.Page;
 import com.google.cloud.storage.Blob;
 import com.google.cloud.storage.BlobId;
 import com.google.cloud.storage.Bucket;
@@ -97,9 +98,13 @@ public class GoogleCloudStorageConsumer extends ScheduledBatchPollingConsumer {
         } else {
             LOG.trace("Queueing objects in bucket [{}]...", bucketName);
 
-            List<Blob> bloblist = new LinkedList<>();
-            for (Blob blob : getStorageClient().list(bucketName).iterateAll()) {
+            Page<Blob> page = getStorageClient().list(bucketName);
+
+            // okay we have some response from Google so lets mark the consumer as ready
+            forceConsumerAsReady();
 
+            List<Blob> bloblist = new LinkedList<>();
+            for (Blob blob : page.iterateAll()) {
                 if (filter != null && !filter.isEmpty()) {
                     if (blob.getBlobId().getName().matches(filter)) {
                         bloblist.add(blob);
@@ -107,7 +112,6 @@ public class GoogleCloudStorageConsumer extends ScheduledBatchPollingConsumer {
                 } else {
                     bloblist.add(blob);
                 }
-
             }
 
             if (LOG.isTraceEnabled()) {