I tried this route with a test, and I’m not sure where the body is supposed to be set to “Error decoding HL7”. Given I can’t make the route set the body to the required value (unless that’s what I actually send), it looks like the choice is working correctly.
Can you insert a log statement right after the from to log the body to see what it actually is? > On May 11, 2016, at 9:44 AM, Kriti <kriti0...@gmail.com> wrote: > > Hi, > > I have a camel route like this - > > public void configure() { > > ------------------------- > ------------------------- > > from('mina2:tcp://'+ incomingHL7Listener.getIp() + ':' + > incomingHL7Listener.getPort() +'?codec=#rcmhl7codec') > .choice() > .when(body().isEqualTo("Error decoding > HL7")).to('direct:failure').endChoice() > .otherwise().to('direct:success'); > > from('direct:failure') > .process{ > -------------- > } > .marshal().hl7(); > > from('direct:success') > .process{ > -------------- > } > .marshal().hl7(); > > The route is executing the when part i.e from('direct:failure') irrespective > of whether the condition gets satisfied or not. Even if the body is not > equal to 'Error decoding HL7', it is going to the failure part of the route. > > I need to get a solution for this as soon as possible. Any suggestions would > be welcome. > > Thanks and Regards, > Kriti > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/choice-when-not-working-as-expected-in-the-camel-route-tp5782452.html > Sent from the Camel - Users mailing list archive at Nabble.com.