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.

Reply via email to