[ 
https://issues.apache.org/jira/browse/CAMEL-12638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16541360#comment-16541360
 ] 

Willem Jiang commented on CAMEL-12638:
--------------------------------------

The FluentProducerTemplate works as the Builder class with the fluent API to 
setup the internal states which  is not thread safe. You may need to use the 
DefaultProducerTemplate to do the job.

> DefaultFluentProducerTemplate is not thread safe
> ------------------------------------------------
>
>                 Key: CAMEL-12638
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12638
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.20.2
>            Reporter: Lukasz
>            Priority: Major
>
> I think we have rediscovered the CAMEL-10820 bug. A body of one request gets 
> replaced with a body of proceeding request, in our case we use *request()* 
> method instead of *asyncSend()*.
> We use camel together with spring-boot. Consider following code:
>  
> {code:java}
> @Service
> public class UseCamelService {
>    private FluentProducerTemplate producer;
>    @Autowired
>    public UseCamelService(FluentProducerTemplate producer) {
>       this.producer = producer;
>    }
>    public String getValueFromCamel(String body) {
>       return producer.to("route").withBody(body).request(String.class);
>    }
> }
> {code}
> If *UseCamelService.getValueFromCamel()* gets called from two different 
> threads it is possible for the latter one to override the body of the first 
> one.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to