Hi The new behaviour is the correct one - message transformation via setBody, transform, bean etc should be the same.
On Tue, Mar 13, 2018 at 12:43 PM, Landl Hubert <hubert.la...@mic-cust.com> wrote: > We use currently Camel 2.17.7 and will upgrade to 2.20.2. > > With 2.20.2 we have a new unexpected behaviour. > We use in some routes ExchangePattern.InOnly. > To remove unwanted headers, we set our required headers and body to > Exchange.OUT. > In the next bean we always get the "cleaned" exchange object where in the IN > part of the exchange only our expected headers are available. > 1. Due to the adaption from > CAMEL-10424<https://issues.apache.org/jira/browse/CAMEL-10424> all headers > from IN and OUT are merged in Method "MethodInfo.fillResult" because exchange > objects will be handled as OUT capable when exchange.hasOut()=true. > ... > // the bean component forces OUT if the MEP is OUT capable > boolean out = ExchangeHelper.isOutCapable(exchange) || exchange.hasOut(); > ... > > I expected that no "old" headers are available in the next bean and that > setting from OUT to IN is only done in Method > "PipelineHelper.createNextExchange(...)": > public static Exchange createNextExchange(Exchange previousExchange) { > Exchange answer = previousExchange; > // now lets set the input of the next exchange to the output of the > // previous message if it is not null > if (answer.hasOut()) { > answer.setIn(answer.getOut()); > answer.setOut(null); > } > return answer; > } > > Is this adaptation a break against the message exchange pattern or does we > use this in a wrong way? > > Thank you in advance! -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2