Croway commented on PR #29274: URL: https://github.com/apache/camel/pull/29274#issuecomment-6668317882
@gnodet thanks for the review, both points are addressed. **1. `LAST_MODIFIED` / `MESSAGE_TIMESTAMP` on the producer** (313534831697) The GET path of `getObject` did not set them either before this PR, and the new HEAD path mirrors it so that `ignoreBody` does not change which headers are set. Both paths now set `CamelAwsS3LastModified` and `CamelMessageTimestamp`, as the consumer does: - `AWS2S3ProducerGetObjectIgnoreBodyTest` checks both headers with and without `ignoreBody`; 3 of its 4 tests fail without the change. - The `CamelMessageTimestamp` header metadata is no longer consumer-only. - The upgrade guide says that a `CamelMessageTimestamp` set before `getObject` is now replaced. **2. `completionFromBatchConsumer`** (d25859baffe8) I reproduced this with the S3 fake, and it goes beyond an informational note: it changes how groups are formed. - **Setup:** `includeFolders=false` and a folder object in the bucket. The folder is never deleted, so every poll lists and skips it, and every poll's `CamelBatchSize` is one too high. - **Groups with the PR as it was:** `[a, b, d] [e, f, h, i]`. On main each poll is one group. - **Same with two consumers of the same bucket:** for example, two pods where the other pod deletes an object after this one listed it. The group of the first pod never completes. The component page and the upgrade guide now describe this, with a workaround that gives one group per poll: `completionTimeout` instead of `completionFromBatchConsumer`, with a timeout shorter than the consumer `delay`. That gave `[a, b] [d] [e, f] [h, i, j]`. Using both does not work: the aggregator's batch counter is not reset when a group completes by timeout, so a later poll's group was split (`[h, i] [j]`). I also tried getting one object ahead, so that the last exchange of a poll carries the exact size, and left it out for two reasons: - **It doesn't fix the default aggregator.** The list strategies return the first exchange of the group, and the batch size is read from that exchange. - **It brings back the abort this PR fixes.** With `includeBody=false` and a route slower than 60 s, the AWS SDK aborts the stream of the next object. _Claude Code on behalf of Federico Mariani_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
