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:10 UTC
[camel] branch camel-3.18.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.18.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.18.x by this push:
new b46aa86c2e8 CAMEL-16287 camel-aws2-sqs should use pagination for deciding which aws sqs queues it should create (#8113)
b46aa86c2e8 is described below
commit b46aa86c2e802dfc90d027556d67ae83ee73cbab
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 c93d3ac84f4..806216e3481 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
@@ -167,23 +167,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);
}
}
}