Andrea Cosentino created CAMEL-24476:
----------------------------------------

             Summary: camel-mina - add a muteException consumer option
                 Key: CAMEL-24476
                 URL: https://issues.apache.org/jira/browse/CAMEL-24476
             Project: Camel
          Issue Type: Improvement
          Components: camel-mina
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino
             Fix For: 4.23.0


CAMEL-23651 aligned the {{muteException}} consumer option so that a failed 
exchange does not return the exception's stack trace or message to the remote 
caller. The option exists in camel-http-common (and therefore camel-servlet and 
camel-jetty), camel-http, camel-netty-http, camel-platform-http and 
camel-undertow. A grep for {{muteException}} across {{components/}} still shows 
it in the http family only.

Split out of CAMEL-24428 so that each component can be tracked, fixed and 
released on its own.

{{MinaConsumer}} writes the route's exception straight back over the socket 
when the exchange failed and {{transferExchange}} is off:

{code:java}
boolean failed = exchange.isFailed();
if (failed && !getEndpoint().getConfiguration().isTransferExchange()) {
    if (exchange.getException() != null) {
        response = exchange.getException();
    }
    ...
}
if (response != null) {
    MinaHelper.writeBody(session, response, exchange, 
configuration.getWriteTimeout());
}
{code}

The remote peer therefore receives the {{Throwable}} - its message, and with 
the object codec its serialised form, including the cause chain.

Proposal: add a {{muteException}} consumer option, defaulting to {{true}} to 
match the post-CAMEL-23651 behaviour of the http family, with an upgrade-guide 
entry noting that routes relying on the detail must set it to {{false}} 
explicitly.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to