[backport camel-4.18.x] CAMEL-24343: camel-google-calendar - stop the stream consumer from skipping events - #25380
Merged
Conversation
…ipping events (apache#25352) With considerLastUpdate the consumer moved its updatedMin cursor to the local clock whenever a poll returned nothing, so every event modified between the two polls was filtered out and never delivered. On a non-empty poll it moved the cursor one second past the newest event instead, which dropped everything modified within that same second. The cursor is now the update time of the newest event actually delivered, and the ids seen at that exact instant are remembered so the inclusive updatedMin filter does not deliver them twice. Also replaces the unbounded self-recursion on an invalid sync token (HTTP 410) with a single full re-sync, and guards the item list of the response, which is null when the calendar returns no events. Signed-off-by: Andrea Cosentino <ancosen@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> (cherry picked from commit ab77bb5)
davsclaus
approved these changes
Aug 6, 2026
davsclaus
added a commit
that referenced
this pull request
Aug 6, 2026
… stream consumer from skipping events (#25385) CAMEL-24343: camel-google-calendar - stop the stream consumer from skipping events The stream consumer moved its updatedMin cursor to the local clock on an empty poll, skipping events modified in between, and one second past the newest event otherwise, dropping anything modified within that second. The cursor is now the update time of the newest event actually delivered, with the ids seen at that instant remembered so the inclusive filter does not deliver them twice. Also replaces the unbounded self-recursion on an invalid sync token with a single full re-sync, and guards a null item list. Closes #25380 Co-authored-by: Andrea Cosentino <ancosen@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #25352 (merged on
main).The
google-calendar-streamconsumer moved itsupdatedMincursor to the local clock on a poll thatreturned nothing — skipping every event modified in between — and one second past the newest event
otherwise, dropping anything modified within that second. The cursor is now the update time of the
newest event actually delivered, with the ids seen at that instant remembered so the inclusive
updatedMinfilter does not deliver them twice. Also replaces the unboundedreturn poll()recursion on an invalid sync token with a single full re-sync, and guards a null item list.
Cherry-picked cleanly; the only auto-merged hunk is the
pom.xmltest-dependency block(
camel-test-junit5here vs-junit6on main). The new test does not useCamelTestSupport, so itneeded no adaptation. Module tests and the full reactor build are green on this branch.
The upgrade guide is not touched — per project policy, guide entries for backported changes live on
main, and this change needed none there either.Claude Code on behalf of oscerd
🤖 Generated with Claude Code