[
https://issues.apache.org/jira/browse/CAMEL-10820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15896917#comment-15896917
]
Luca Burgazzoli commented on CAMEL-10820:
-----------------------------------------
We may also delay the creation of default exchangeSupplier/processorSupplier so
that for async* operation we can make a copy of the values only if needed
> DefaultFluentProducerTemplate mixes up data when sending asynchronously
> -----------------------------------------------------------------------
>
> Key: CAMEL-10820
> URL: https://issues.apache.org/jira/browse/CAMEL-10820
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 2.18.2
> Environment: eclipse, win7, gradle
> Reporter: Jakub Cernohorsky
> Fix For: 2.18.4, 2.19.0
>
> Attachments: default_fluent_producer_template.diff
>
>
> DefaultFluentProducerTemplate
> code:
> producer = context.createFluentProducerTemplate();
> future1 = producer.withHeader("action",
> "register").withBody(body1).asyncSend();
> future2 = producer.withHeader("action",
> "register").withBody(body2).asyncSend();
> These two subsequent calls produces with the default creation two calls with
> the same body - body2.
> The cause is that it uses default processor supplier () ->
> this::populateExchange which is call lazily at the time of send and at that
> time the body property of DefaultFluentProducerTemplate is body2.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)