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 2022/08/05 05:23:30 UTC

[camel] branch camel-3.14.x updated: CAMEL-16287 camel-aws2-sqs should use pagination for deciding which aws sqs queues it should create (#8113)

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

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


The following commit(s) were added to refs/heads/camel-3.14.x by this push:
     new 4775dca1808 CAMEL-16287 camel-aws2-sqs should use pagination for deciding which aws sqs queues it should create (#8113)
4775dca1808 is described below

commit 4775dca180853c04a81a8aa31510057351fa07cd
Author: George Ladutsko <la...@gmail.com>
AuthorDate: Fri Aug 5 08:15:49 2022 +0300

    CAMEL-16287 camel-aws2-sqs should use pagination for deciding which aws sqs queues it should create (#8113)
---
 .../camel/component/aws2/sqs/Sqs2Endpoint.java     | 25 ++++++++++++++--------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Endpoint.java b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Endpoint.java
index 91fdfea6d70..979a9df6a6a 100644
--- a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Endpoint.java
+++ b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Endpoint.java
@@ -166,23 +166,30 @@ public class Sqs2Endpoint extends ScheduledPollEndpoint implements HeaderFilterS
                 queueUrl = getQueueUrlResult.queueUrl();
             } else {
                 // check whether the queue already exists
-                boolean done = false;
-                while (!done) {
-                    ListQueuesResponse listQueuesResult
-                            = client.listQueues(ListQueuesRequest.builder().maxResults(1000).build());
+                String queueNamePath = "/" + configuration.getQueueName();
+                ListQueuesRequest.Builder listQueuesRequestBuilder
+                        = ListQueuesRequest.builder().maxResults(1000).queueNamePrefix(configuration.getQueueName());
+
+                for (;;) {
+                    ListQueuesResponse listQueuesResult = client.listQueues(listQueuesRequestBuilder.build());
                     for (String url : listQueuesResult.queueUrls()) {
-                        if (url.endsWith("/" + configuration.getQueueName())) {
+                        if (url.endsWith(queueNamePath)) {
                             queueUrl = url;
                             LOG.trace("Queue available at '{}'.", queueUrl);
                             break;
                         }
                     }
-                    if (listQueuesResult.nextToken() == null) {
-                        done = true;
-                        continue;
+
+                    if (queueUrl != null) {
+                        break;
                     }
+
                     String token = listQueuesResult.nextToken();
-                    listQueuesResult = client.listQueues(ListQueuesRequest.builder().nextToken(token).build());
+                    if (token == null) {
+                        break;
+                    }
+
+                    listQueuesRequestBuilder = listQueuesRequestBuilder.nextToken(token);
                 }
             }
         }