[
https://issues.apache.org/jira/browse/CAMEL-16825?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17599851#comment-17599851
]
Claus Ibsen commented on CAMEL-16825:
-------------------------------------
Where did your PR go - I cannot see it , or cant remember we have got it from
you - my bad as this ticket is 1+ year old now
> can not use endChoice() in nest choice DSL
> ------------------------------------------
>
> Key: CAMEL-16825
> URL: https://issues.apache.org/jira/browse/CAMEL-16825
> Project: Camel
> Issue Type: Improvement
> Components: camel-core, eip
> Affects Versions: 3.6.0, 3.11.0
> Reporter: tang honggang
> Priority: Minor
> Fix For: 3.x
>
>
> I want to use nest choice DSL to finish some job, but it doesn't work well in
> my test case. When I use endChoice() in the inner choice clause, it return
> back to the outer choice definition actually.
> And this is the test case:
> ProcessorDefinition<?> end = from("timer:foo?period=5000&synchronous=true")
> .transform(simple("${random(1000)}"))
> .choice()
> .when(simple("${body} > 500"))
> .log("High number ${body}")
> .choice()
> .when(simple("${body} > 750"))
> .log("High number >750 ${body}")
> .endChoice()
> .otherwise()
> .log("High number <750 ${body}")
> .endChoice()
> .endChoice()
> .otherwise()
> .log("Low number ${body}")
> .endChoice();
>
> Though in this case, I can fix the problem by not use endChoice(), I see the
> code of endChoice(). I found that change the sequence of the two judgement
> below can fix my problem, but I am not sure the influence. So I hope you can
> give me an answer, thx!
> // are we nested choice?
> ProcessorDefinition<?> def = this;
> if (def.getParent() instanceof WhenDefinition) {
> return (ChoiceDefinition) def.getParent().getParent();
> }
> // are we already a choice?
> if (def instanceof ChoiceDefinition) {
> return (ChoiceDefinition) def;
> }
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)