Thanks Claus. After adding end before endchoice my route is working now.

    .to("stream:out")
.end()
.endChoice()

My understanding about end & endchoice is that, end() will close the
choice() clause, endchoice() will close the when() clause. Then why do
we need another end() before endChoice in 2 split?

Correct me if my understanding is wrong.


On Fri, 26 Jul 2019 at 14:23, Claus Ibsen <claus.ib...@gmail.com> wrote:

> You have 2 splits, so you need and end before the end choice
>
> On Fri, Jul 26, 2019 at 10:51 AM sujin sr <suji...@gmail.com> wrote:
> >
> > I am getting ClassCastException while trying to execute camel route
> >
> > from("timer://messageSplitterTest?repeatCount=1")
> >         .process(exchange -> {
> >             Message message = exchange.getMessage();
> >             List<Message> ongoingMessages = new ArrayList<>();
> >             for (int i = 0; i < 10; i++) {
> >                 Message listMessage = message.copy();
> >                 listMessage.setHeader("count", String.valueOf(i));
> >                 ongoingMessages.add(listMessage);
> >             }
> >             exchange.getIn().setBody(ongoingMessages);
> >             exchange.getIn().setHeader("primary", "true");
> >         })
> >         .choice()
> >             .when(header("primary").isEqualTo("true"))
> >                 .split(body())
> >                 .process(exchange -> {
> >                     Message msg = exchange.getMessage();
> >                     System.out.println("After Split, count=" +
> > msg.getHeader("count", String.class));
> >                 })
> >                 .split(body())
> >                 .to("stream:out")
> >             .endChoice()
> >             .otherwise()
> >                 .to("stream:out")
> >         .end()
> > ;
> >
> > I got below error
> >
> > Exception in thread "main" java.lang.ClassCastException:
> > org.apache.camel.model.SplitDefinition cannot be cast to
> > org.apache.camel.model.ChoiceDefinition
> >         at
> org.apache.camel.model.ProcessorDefinition.endChoice(ProcessorDefinition.java:1415)
> >         at
> com.temenos.tti.test.utils.camel.MessageSplitCamelTest4$1.configure(MessageSplitCamelTest4.java:40)
> >
> >
> > Kindly Help me to fix this error.
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Reply via email to