Skip to content

CAMEL-24476/24477/24478: muteException for the mina, cxf and grpc consumers, backport to camel-4.22.x - #25934

Open
oscerd wants to merge 4 commits into
apache:camel-4.22.xfrom
oscerd:backport/glasswing-muteexception-4.22.x
Open

CAMEL-24476/24477/24478: muteException for the mina, cxf and grpc consumers, backport to camel-4.22.x#25934
oscerd wants to merge 4 commits into
apache:camel-4.22.xfrom
oscerd:backport/glasswing-muteexception-4.22.x

Conversation

@oscerd

@oscerd oscerd commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Backport to camel-4.22.x of three consumer fixes already reviewed and merged on main. Each aligns a consumer with the muteException behaviour CAMEL-23651 established for the HTTP consumers: a route failure no longer hands the remote caller the exception class, message or stack trace.

Behaviour change. muteException defaults to true, so a consumer that used to echo the failure now returns a generic error. Set muteException=false to restore the old output. This matches what CAMEL-23651 did for the HTTP consumers.

Deviations from a straight cherry-pick, both mechanical:

  • MinaMuteExceptionTest uses JUnit assertions instead of AssertJ. camel-mina has no assertj test dependency on this branch and its other 36 test classes are JUnit, so adding one was the wrong trade for a backport.
  • The grpc commit on main carried an unrelated YAML DSL schema regeneration that removes csimple from the expression list. That hunk is left out; csimple is still valid on this branch.

The upgrade-guide entries are not included: the guides for every line live on main.

Built and tested per module on this branch (camel-mina, camel-cxf-soap, camel-grpc), including the new and touched tests. Catalog and DSL mirrors regenerated from this branch, so no main-only metadata leaks in.

Claude Code on behalf of oscerd

oscerd and others added 3 commits August 31, 2026 09:55
The consumer wrote exchange.getException() straight back over the socket, so a
route failure handed the remote peer the exception class and message over a
textline codec, and its serialised form over the object codec.

muteException defaults to true, matching the http consumers aligned by CAMEL-23651.

(cherry picked from commit 7af3e74)

MinaMuteExceptionTest uses JUnit assertions here: camel-mina on this branch has no
assertj test dependency, and its other 36 test classes are JUnit.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
An exception thrown by the route was described back to the SOAP client in the
fault, exposing internal types and messages. Declared faults (@webfault) are
still reported as before, since those are part of the service contract.

(cherry picked from commit fd4fd27)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
The consumer put the route exception's message into the gRPC status description,
so the caller received internal detail on failure.

(cherry picked from commit 3c99874)

The main commit also carried an unrelated YAML DSL schema regeneration that drops
csimple; that hunk is left out, csimple is still valid on this branch.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@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.

@github-actions

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • catalog/camel-catalog
  • components/camel-cxf/camel-cxf-soap
  • components/camel-grpc
  • components/camel-mina
  • dsl/camel-componentdsl
  • dsl/camel-endpointdsl

🔬 Scalpel shadow comparison — Scalpel: 19 tested, 26 compile-only — current: 16 all tested

Maveniverse Scalpel detected 45 affected modules (current approach: 16).

⚠️ 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 19 modules (6 direct + 13 downstream), skip tests for 26 (generated code, meta-modules)

Modules Scalpel would test (19)
  • camel-catalog
  • camel-componentdsl
  • camel-cxf-soap
  • camel-cxf-spring-soap
  • camel-endpointdsl
  • camel-fhir
  • camel-grpc
  • camel-hl7
  • camel-jbang-mcp
  • camel-jbang-plugin-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-launcher-container
  • camel-mina
  • camel-soap
  • camel-syslog
  • camel-yaml-dsl-validator
  • camel-yaml-dsl-validator-maven-plugin
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-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

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

All tested modules (45 modules)
  • Camel :: All Components Sync point
  • Camel :: Assembly
  • Camel :: CXF :: SOAP
  • Camel :: CXF :: SOAP :: Spring
  • 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 :: FHIR
  • Camel :: HL7
  • 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 :: MINA
  • Camel :: SOAP
  • Camel :: Syslog
  • Camel :: YAML DSL
  • Camel :: YAML DSL :: Deserializers
  • Camel :: YAML DSL :: Maven Plugins
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin
  • Camel :: gRPC

⚙️ View full build and test results

CxfEndpoint's muteException consumer option now defaults to true (CAMEL-24477),
so an undeclared route failure such as this test's authorization denial no longer
leaks its message to the SOAP caller.

(cherry picked from commit f922ada)

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants