Skip to content

[backport camel-4.18.x] CAMEL-24343: camel-google-calendar - stop the stream consumer from skipping events - #25380

Merged
davsclaus merged 1 commit into
apache:camel-4.18.xfrom
oscerd:backport/CAMEL-24343-4.18.x
Aug 6, 2026
Merged

[backport camel-4.18.x] CAMEL-24343: camel-google-calendar - stop the stream consumer from skipping events#25380
davsclaus merged 1 commit into
apache:camel-4.18.xfrom
oscerd:backport/CAMEL-24343-4.18.x

Conversation

@oscerd

@oscerd oscerd commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Backport of #25352 (merged on main).

The google-calendar-stream consumer moved its updatedMin cursor to the local clock on a poll that
returned 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
updatedMin filter does not deliver them twice. Also replaces the unbounded return 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.xml test-dependency block
(camel-test-junit5 here vs -junit6 on main). The new test does not use CamelTestSupport, so it
needed 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

…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 davsclaus added this to the 4.18.4 milestone Aug 6, 2026
@davsclaus davsclaus added bug Something isn't working components labels Aug 6, 2026
@davsclaus
davsclaus merged commit d188c37 into apache:camel-4.18.x Aug 6, 2026
3 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants