Andrea Cosentino created CAMEL-25621:
----------------------------------------
Summary: camel-mina - A write that fails is not reported on the
exchange when sync is false
Key: CAMEL-25621
URL: https://issues.apache.org/jira/browse/CAMEL-25621
Project: Camel
Issue Type: Bug
Components: camel-mina
Reporter: Andrea Cosentino
{{MinaHelper.writeBody}} waits for the {{WriteFuture}} with
{{awaitUninterruptibly(writeTimeout)}} and throws only when that wait times
out. When the write completes within the timeout but fails
({{WriteFuture.isWritten()}} is false and {{getException()}} holds the cause),
the method returns normally. With {{sync=false}} the producer then completes
the exchange as if the message had been sent, although nothing was written.
With {{sync=true}} the failure is reported, through the response handler.
For example, a producer with {{sync=false}} whose codec throws while encoding
the message completes the exchange without an exception, and the server
receives nothing.
Proposed change:
* In {{MinaHelper.writeBody}}, after the wait, throw a
{{CamelExchangeException}} with the future's exception when the write did not
succeed.
* Test: a producer with {{sync=false}} whose write fails gets the failure on
the exchange.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)