CAMEL-24401: Fix permanent temporary replyTo strand in camel-jms - #25531
Open
atiaomar1978-hub wants to merge 1 commit into
Open
CAMEL-24401: Fix permanent temporary replyTo strand in camel-jms#25531atiaomar1978-hub wants to merge 1 commit into
atiaomar1978-hub wants to merge 1 commit into
Conversation
Replace the one-shot refreshWanted flag with a generation counter that is only acknowledged after a replacement temporary queue is published to replyTo. When a refresh is scheduled, defer listener-container recovery until after the endpoint recovery interval and skip while Spring is already recovering, so a pending refresh cannot outlive the last destination resolve (Scenario A). Add unit tests for failed refresh retries, concurrent refresh generations, generation changes during resolve, and a request-reply integration test. Co-authored-by: Cursor <cursoragent@cursor.com>
atiaomar1978-hub
marked this pull request as ready for review
August 18, 2026 18:06
Contributor
Author
AI Review Summary (Bugbot + Grok)AI-generated on behalf of atiaomar1978-hub Both reviews were run against this changeset. Findings below, with status after follow-up commits in this PR. Bugbot findings
Grok review (cursor-grok-4.6-high-fast)Verdict: request changes → several items addressed in latest commit; a few gaps remain for human review. What looks correct
Addressed in this PR
Remaining gaps / human review items
Style / conventions
RecommendationApproach is sound for B/C and a reasonable mitigation for A. Before merge:
Backport: #25530 |
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.
Summary
AI-generated on behalf of atiaomar1978-hub
Fixes CAMEL-24401: camel-jms InOut producers using temporary reply queues could enter a permanent
Failed to resolve replyTo destinationloop after JMS connection faults.Root cause
TemporaryQueueReplyManagerused a one-shotrefreshWantedflag that was cleared before a replacement temporary queue was published (Scenario B), and could remain armed with no consumer left to call the destination resolver (Scenario A).Fix
refreshWantedwith a monotonic refresh generation counter and only publishreplyToafter a successful queue creation for the handled generation (prevents Scenarios B and C).DefaultJmsMessageListenerContainer.recoverReplyDestinationAfterRefresh()as a guarded hook into Spring recovery.Tests
TemporaryQueueReplyManagerRefreshTest— failed create retry, latest generation publish, permanent failure, generation change during resolveJmsTemporaryReplyToRequestReplyIT— consecutive InOut request-reply sanity checkBackport
camel-4.22.x: CAMEL-24401: Backport temporary replyTo refresh fix to camel-4.22.x #25530References