Skip to content

CAMEL-24068: camel-spring-rabbitmq - Align component replyTimeout default to 30000 - #24719

Merged
davsclaus merged 2 commits into
mainfrom
fix/CAMEL-24068
Jul 15, 2026
Merged

CAMEL-24068: camel-spring-rabbitmq - Align component replyTimeout default to 30000#24719
davsclaus merged 2 commits into
mainfrom
fix/CAMEL-24068

Conversation

@davsclaus

@davsclaus davsclaus commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Claude Code on behalf of davsclaus

Summary

The replyTimeout option on SpringRabbitMQComponent had a default of 5000ms (5 seconds), while the corresponding SpringRabbitMQEndpoint option documented and declared a default of 30000ms (30 seconds). Since createEndpoint() unconditionally copies the component value to the endpoint, the effective default was always 5 seconds — contradicting the endpoint documentation.

This mismatch was introduced in CAMEL-19373 (Jun 2023), which updated the endpoint default from 5000 to 30000 to match Spring's AsyncRabbitTemplate default receive timeout, but did not update the component's default.

Changes

  • SpringRabbitMQComponent.java: Changed replyTimeout field default from 5000 to 30000, updated @Metadata(defaultValue) annotation and description text
  • SpringRabbitMQComponentTest.java: New unit test verifying the effective endpoint default is 30000ms after creation through the component
  • Upgrade guide: Added entry in camel-4x-upgrade-guide-4_22.adoc documenting the changed default (per review feedback from @gnodet and @oscerd)
  • Regenerated catalog JSON and component DSL

Test plan

  • New SpringRabbitMQComponentTest.testReplyTimeoutDefault() verifies the effective default
  • All existing tests pass (mvn verify — 35 tests, 0 failures)
  • Upgrade guide entry added for changed default

…ault to 30000

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@davsclaus
davsclaus requested review from orpiske and oscerd July 15, 2026 11:28
@github-actions

Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@gnodet gnodet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean, well-scoped fix that corrects a long-standing inconsistency between the component-level and endpoint-level replyTimeout defaults in camel-spring-rabbitmq.

What's happening: CAMEL-19373 (2023) updated the endpoint default to 30000ms but missed the component class, which kept the old 5000ms default. Since createEndpoint() unconditionally copies component.replyTimeout → endpoint.replyTimeout, the effective timeout was always 5s despite the documentation saying 30s. This PR fixes the root cause.

One suggestion:

Per the project's upgrade guide policy (changed defaults must be documented), a brief entry in docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc would help users who were (unknowingly) relying on the effective 5-second timeout:

=== camel-spring-rabbitmq

The `replyTimeout` option on the component level has been fixed to default to 30 seconds,
aligning it with the endpoint-level default that was documented since Camel 3.20.7 / 3.21.
Previously, the component-level default was still 5 seconds, which would override the
endpoint's declared 30-second default. If you were relying on the effective 5-second timeout,
you can restore it by explicitly setting `replyTimeout=5000` on the component or endpoint.

That said, this is arguably a bug fix rather than an intentional behavior change — I'll leave it to your judgment whether the upgrade guide entry is warranted here.


Claude Code review on behalf of @gnodet. This review was generated by an AI agent and may contain inaccuracies; please verify all suggestions before applying.

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • catalog/camel-catalog
  • components/camel-spring-parent/camel-spring-rabbitmq
  • docs
  • dsl/camel-componentdsl

🔬 Scalpel shadow comparison — Scalpel: 12 tested, 26 compile-only — current: 9 all tested

Maveniverse Scalpel detected 38 affected modules (current approach: 9).

⚠️ Modules only in Scalpel (29)
  • apache-camel
  • camel-allcomponents
  • camel-catalog
  • camel-catalog-console
  • camel-catalog-lucene
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-componentdsl
  • camel-csimple-maven-plugin
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-itest
  • camel-jbang-core
  • camel-jbang-it
  • camel-jbang-main
  • camel-jbang-plugin-edit
  • camel-jbang-plugin-generate
  • camel-jbang-plugin-kubernetes
  • camel-jbang-plugin-test
  • camel-kamelet-main
  • camel-launcher
  • camel-report-maven-plugin
  • camel-route-parser
  • camel-yaml-dsl
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • coverage
  • docs
  • dummy-component

Skip-tests mode would test 12 modules (4 direct + 8 downstream), skip tests for 26 (generated code, meta-modules)

Modules Scalpel would test (12)
  • camel-catalog
  • camel-componentdsl
  • camel-jbang-mcp
  • camel-jbang-plugin-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-launcher-container
  • camel-spring-rabbitmq
  • camel-yaml-dsl-validator
  • camel-yaml-dsl-validator-maven-plugin
  • docs
Modules with tests skipped (26)
  • apache-camel
  • camel-allcomponents
  • camel-catalog-console
  • camel-catalog-lucene
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-csimple-maven-plugin
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-itest
  • camel-jbang-core
  • camel-jbang-it
  • camel-jbang-main
  • camel-jbang-plugin-edit
  • camel-jbang-plugin-generate
  • camel-jbang-plugin-kubernetes
  • camel-jbang-plugin-test
  • camel-kamelet-main
  • camel-launcher
  • camel-report-maven-plugin
  • camel-route-parser
  • camel-yaml-dsl
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • coverage
  • dummy-component

ℹ️ Shadow mode — Scalpel observes but does not affect test execution. Learn more

All tested modules (38 modules)
  • Camel :: All Components Sync point
  • Camel :: Assembly
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated)
  • Camel :: Catalog :: Camel Catalog
  • Camel :: Catalog :: Camel Report Maven Plugin
  • Camel :: Catalog :: Camel Route Parser
  • Camel :: Catalog :: Console
  • Camel :: Catalog :: Dummy Component
  • Camel :: Catalog :: Lucene (deprecated)
  • Camel :: Catalog :: Maven
  • Camel :: Catalog :: Suggest
  • Camel :: Component DSL
  • Camel :: Coverage
  • Camel :: Docs
  • Camel :: Endpoint DSL
  • Camel :: Endpoint DSL :: Support
  • Camel :: Integration Tests
  • Camel :: JBang :: Core
  • Camel :: JBang :: Integration tests
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Main
  • Camel :: JBang :: Plugin :: Edit
  • Camel :: JBang :: Plugin :: Generate
  • Camel :: JBang :: Plugin :: Kubernetes
  • Camel :: JBang :: Plugin :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: Kamelet Main
  • Camel :: Launcher
  • Camel :: Launcher :: Container
  • Camel :: Spring RabbitMQ
  • Camel :: YAML DSL
  • Camel :: YAML DSL :: Deserializers
  • Camel :: YAML DSL :: Maven Plugins
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin

⚙️ View full build and test results

@oscerd oscerd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alignment itself is reasonable — making the component-level replyTimeout default (was 5000 ms) match the endpoint's 30000 ms removes a confusing inconsistency, and the added test pins it.

One thing before merge: this is a user-visible changed default (request/reply producers now wait up to 30s instead of 5s), which per the contributor guidelines should get a short entry in docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc. The PR regenerates the catalog/JSON/DSL correctly but doesn't touch the upgrade guide. A one-liner noting the new default (and that anyone relying on the old 5s behaviour should set replyTimeout=5000 explicitly) would cover it.

Reviewed with Claude Code on behalf of Andrea Cosentino. This review was generated by an AI agent and may contain inaccuracies; please verify all suggestions before applying.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>

@davsclaus davsclaus left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point — added an upgrade guide entry in 551cf78. Thanks for the suggestion.

@davsclaus

Copy link
Copy Markdown
Contributor Author

@oscerd Thanks — added the upgrade guide entry in 551cf78, consistent with your and Guillaume's suggestion.

@github-actions github-actions Bot added the docs label Jul 15, 2026
@davsclaus davsclaus added this to the 4.22.0 milestone Jul 15, 2026
@davsclaus davsclaus self-assigned this Jul 15, 2026
@davsclaus davsclaus added the bug Something isn't working label Jul 15, 2026
@davsclaus
davsclaus merged commit b747301 into main Jul 15, 2026
6 checks passed
@davsclaus
davsclaus deleted the fix/CAMEL-24068 branch July 15, 2026 15:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants