Federico Mariani created CAMEL-24157:
----------------------------------------

             Summary: camel-aws2 - Umbrella: medium-severity findings from July 
2026 review (S3, SQS, SNS, Kinesis, DDB)
                 Key: CAMEL-24157
                 URL: https://issues.apache.org/jira/browse/CAMEL-24157
             Project: Camel
          Issue Type: Bug
          Components: camel-aws
            Reporter: Federico Mariani
         Attachments: camel-aws-review-2026-07.md

Umbrella for the medium-severity findings of the July 2026 review of the 
camel-aws2 flagship components on main (4.22.0-SNAPSHOT). Full findings 
document attached to this issue and to the high-severity umbrella; low-severity 
findings are listed in the document only.

*camel-aws2-s3*
# {{AWS2S3Consumer:148-166}} — truncated-list pagination fallback feeds an 
object key into the ListObjectsV2 {{continuationToken}} (V1 leftover from 
CAMEL-22291 after the CAMEL-23132 migration); breaks against S3-compatible 
stores that omit nextContinuationToken. Should use {{startAfter}}.
# {{AWS2S3Producer:632-680}} / {{AWS2S3Consumer:128}} — SSE-C customer key not 
applied on producer getObject/getObjectRange nor the consumer fileName path; 
SSE-C objects unreadable (400).
# {{AWS2S3Consumer:366-390}} — {{removePrefixOnMove}} treats the prefix as a 
regex (PatternSyntaxException/NPE) and the failure also skips deleteAfterRead 
-> endless reprocessing.
# {{AWS2S3Producer:1086-1109}} — presigner 
(createDownloadLink/createUploadLink) ignores session/profile credentials and 
NPEs when region is unset.
# {{AWS2S3Endpoint:66}} — {{maxConnections}} option documented but never 
applied to the S3 client.
# {{AWS2S3StreamUploadProducer:133-184}} — uploadAggregate read/mutated outside 
the lock (NPE race with the timeout task); an exception in the scheduled task 
permanently cancels timeout flushes.

*camel-aws2-sqs*
# {{Sqs2Consumer:597,655-671}} — QueueDoesNotExistException silently swallowed 
when {{maxMessagesPerPoll > 10}} (error only propagated when every parallel 
request failed, but the missing-queue path flags at most one).
# {{Sqs2Consumer:302-363,578-587}} — consumer stop/start cycle leaks the 
PollingTask thread pool and keeps the visibility-extender period task scheduled 
(cleanup only in doShutdown).
# {{Sqs2Producer:119-174}} — sendBatchMessage does not chunk to the SQS 
10-entry batch limit (11+ entries fail wholesale); empty iterables and 
non-String elements also unhandled.
# {{Sqs2Producer:64-70}} — FIFO producer requires messageGroupIdStrategy even 
for purgeQueue/deleteQueue/listQueues operations (cf. CAMEL-18123).

*camel-aws2-sns*
# {{Sns2Endpoint:176}} — {{subscribeSNStoSQS}} queueArn validation is dead 
code: {{isNotEmpty(isNotEmpty(queueArn))}} is always true (present since 
CAMEL-14552); stale error message too.
# {{Sns2Endpoint:140-145}} — {{serverSideEncryptionEnabled=true}} without 
kmsMasterKeyId silently creates the topic unencrypted.
# {{Sns2ProducerHealthCheck:40-46}} — health check permanently DOWN when region 
is unset ({{Region.of(null)}} throws) and requires sns:ListSubscriptions that 
publish-only roles lack.

*camel-aws2-kinesis*
# {{Kinesis2Consumer:108-141}} — fixed-shardId consumer calls DescribeStream on 
every poll (10 TPS account limit; >100-shard streams fail to find the shard).
# {{Kinesis2Producer:77-122}} — batch producer applies a single partition key 
to all records; whole batch pinned to one shard.

*camel-aws2-ddb*
# {{Ddb2JsonDataTypeTransformer:220-222}} — empty JSON arrays map to an empty 
StringSet, which DynamoDB rejects.
# {{ScanCommand:37-42}} — Scan ignores the {{consistentRead}} option (Get/Query 
apply it).
# {{Ddb2Endpoint:173-178}} — table-creation wait loop's RNFE retry guard can 
never match (SDK v2 messages never contain the exception class name); 
documented DescribeTable eventual-consistency tolerance is dead code.

_This issue was researched and filed by Claude Code (AI) on behalf of Federico 
Mariani (fmariani). Full findings document from the review is attached to the 
umbrella issues._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to