davsclaus opened a new pull request, #27682: URL: https://github.com/apache/camel/pull/27682
These polling consumers route each exchange asynchronously and delete/move the object only on completion, so when routing takes longer than the poll delay (slow route, `threads()`, `seda`, ...) the next poll consumed the same object again while its first exchange was still in flight (and the later delete/move could 404). Like camel-minio (CAMEL-25512), each consumer now keeps the names in flight in a private set and skips them on the next poll. A name is released on completion/failure (after the commit/rollback work), when reading the object fails, and for exchanges not routed because the consumer is stopping (which are also released back to the exchange factory). No new endpoint options. - **camel-azure-storage-blob**: also skips a single listed blob that returns 404 (deleted after the listing) instead of dropping the whole poll, which leaked the opened streams and re-read those blobs; closes the blob streams of exchanges that are not routed. Blobs are tracked whether or not `deleteAfterRead`/`moveAfterRead` is set: without them every poll still reads all blobs again, only not while their exchange is in flight (documented on the consumer page). - **camel-huaweicloud-obs**, **camel-alibaba-oss**: a listed object that returns 404 is skipped instead of failing the poll. - **camel-aws2-s3-vectors**: with `deleteAfterRead=true`, vectors in flight are now tracked too; the de-duplication set is now thread-safe. Tests: new `*InProgressTest` per module with mocked clients (no Docker): in-flight object not read again, consumed again after a failure, deleted-after-listing object skipped, not-routed exchanges released on stop; they fail without the fix. Existing unit tests of the four modules pass. Docs: azure blob consumer page note and 4.23 upgrade guide entries. Fixes [CAMEL-25551](https://issues.apache.org/jira/browse/CAMEL-25551) _Claude Code on behalf of davsclaus_ 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
