[
https://issues.apache.org/jira/browse/CAMEL-16287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17525013#comment-17525013
]
Stephen Lawson edited comment on CAMEL-16287 at 4/20/22 2:06 PM:
-----------------------------------------------------------------
[~davsclaus] I am using camel-bom 3.14.2 and software.amazon.awssdk 2.17.172.
The pagination added in the latest code will only ever return 1K of results.
This is is because the AWS SDK requires that you pass a max result to trigger
the pagination behaviour.
{noformat}
// check whether the queue already exists
boolean done = false;
while (!done) {
ListQueuesResponse listQueuesResult =
client.listQueues();{noformat}
Perhaps changing this to:
{noformat}
client.listQueues(ListQueuesRequest.builder().maxResults(10000).build()){noformat}
[AWS SDK
Documentation|https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/sqs/model/ListQueuesRequest.html#withMaxResults-java.lang.Integer-]
(Also, we use Camel extensively and would like to thank you for such a
fantastic framework.)
was (Author: JIRAUSER288361):
[~davsclaus] When using camel-bom 3.14.2 and software.amazon.awssdk 2.17.172.
The pagination added in the latest code will only ever return 1K of results.
This is is because the AWS SDK requires that you pass a max result to trigger
the pagination behaviour.
{noformat}
// check whether the queue already exists
boolean done = false;
while (!done) {
ListQueuesResponse listQueuesResult =
client.listQueues();{noformat}
Perhaps changing this to:
{noformat}
client.listQueues(ListQueuesRequest.builder().maxResults(10000).build()){noformat}
[AWS SDK
Documentation|https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/sqs/model/ListQueuesRequest.html#withMaxResults-java.lang.Integer-]
> camel-aws2-sqs should use pagination for deciding which aws sqs queues it
> should create
> ---------------------------------------------------------------------------------------
>
> Key: CAMEL-16287
> URL: https://issues.apache.org/jira/browse/CAMEL-16287
> Project: Camel
> Issue Type: Bug
> Affects Versions: 2.25.3, 3.8.0
> Reporter: Gyorgy Abraham
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 3.10.0
>
>
> There is an auto create queue feature for aws-sqs in camel-sqs component.
> Upon camel context creation / route building, it issues an API call to list
> all sqs queues, so it skips the creation for already existing ones. If camel
> context has a for example consumer route for an sqs queue that is not listed
> in the response of this API call, camel will try to to create it.
> However, this API only lists the first 1000 queues in the current account. If
> there are more then 1000 queues, camel-sqs will try to create a new one, and
> might fail. In our company's account, we have 1442 queues in our account and
> Camel tried to create a .fifo queue because it thought it wasnt already
> existing, resulting in application startup error.
> Relevant code:
> [https://github.com/apache/camel/blob/master/components/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Endpoint.java#L174]
> Relevant API docs at AWS:
> [https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/sqs/AmazonSQS.html#listQueues-com.amazonaws.services.sqs.model.ListQueuesRequest-]
> Solution is straightforward: use pagination and load all queues.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)