Hi

Yes Willem is correct. If you want to adjust the message, then you
need to use the message translate eip.

Invoking an expression/predicate/language etc should not affect the message.


On Fri, Jul 4, 2014 at 5:29 AM, Willem Jiang <willem.ji...@gmail.com> wrote:
> After did some patch work, I have to take my world back. I don’t think we 
> need to copy the attachment back in the InvokeProcessor.
>
> For BeanExpression, we are not supposed to modify the exchange or the message 
> in the evaluation processor, camel just want to know the result of the 
> evaluation.
>
> If you want to change the message attachment header, you can use bean process 
> to do that kind of job. I just commit an unit test[1] to show how to set the 
> attachment in the bean processor.
>
> [1]http://git-wip-us.apache.org/repos/asf/camel/commit/a749cefe
> --
> Willem Jiang
>
> Red Hat, Inc.
> Web: http://www.redhat.com
> Blog: http://willemjiang.blogspot.com (English)
> http://jnn.iteye.com (Chinese)
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
>
> On July 3, 2014 at 10:18:08 PM, Willem Jiang (willem.ji...@gmail.com) wrote:
>> Yeah, we need to copy the attachments back.
>> I just filled a JIRA[1] for it.
>>
>> [1]https://issues.apache.org/jira/browse/CAMEL-7575
>>
>> --
>> Willem Jiang
>>
>> Red Hat, Inc.
>> Web: http://www.redhat.com
>> Blog: http://willemjiang.blogspot.com (English)
>> http://jnn.iteye.com (Chinese)
>> Twitter: willemjiang
>> Weibo: 姜宁willem
>>
>>
>>
>> On July 3, 2014 at 8:00:24 PM, sabri.bousselmi (infosa...@yahoo.fr) wrote:
>> > I think there is a serious issue when evaluatiog Bean language expression. 
>> > it
>> > seems like attachments are not copied from the resulting exchage.
>> > very simple case: invoke a methode where you add an attachment to the
>> > exchange, when the evaluation is ending the value of the exchange will be
>> > null.
>> > I debuged in camel source code, the method process Line n:174 did not copie
>> > the attachment, below the source code:
>> > -------------------------------
>> > // copy the original exchange to avoid side effects on it
>> > Exchange resultExchange = exchange.copy();
>> > // remove any existing exception in case we do OGNL on the
>> > exception
>> > resultExchange.setException(null);
>> >
>> > // force to use InOut to retrieve the result on the OUT
>> > message
>> > resultExchange.setPattern(ExchangePattern.InOut);
>> > processor.process(resultExchange);
>> > result = resultExchange.getOut().getBody();
>> >
>> > // propagate properties and headers from result
>> > if (resultExchange.hasProperties()) {
>> >
>> > exchange.getProperties().putAll(resultExchange.getProperties());
>> > }
>> > if (resultExchange.getOut().hasHeaders()) {
>> >
>> > exchange.getIn().getHeaders().putAll(resultExchange.getOut().getHeaders());
>> > }
>> >
>> > // propagate exceptions
>> > if (resultExchange.getException() != null) {
>> > exchange.setException(resultExchange.getException());
>> > }
>> > -------------------------------------------------------------------------
>> > can you please approve the issue.
>> >
>> >
>> >
>> > --
>> > View this message in context: 
>> > http://camel.465427.n5.nabble.com/Attachments-are-Lost-using-Bean-Language-tp5753283.html
>> > Sent from the Camel - Users mailing list archive at Nabble.com.
>> >
>>
>>
>



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cib...@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Reply via email to