You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2014/12/01 11:03:12 UTC
[jira] [Updated] (CAMEL-8097) Error in AST/Graph translation
[ https://issues.apache.org/jira/browse/CAMEL-8097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen updated CAMEL-8097:
-------------------------------
Fix Version/s: 2.15.0
2.14.1
> Error in AST/Graph translation
> ------------------------------
>
> Key: CAMEL-8097
> URL: https://issues.apache.org/jira/browse/CAMEL-8097
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 2.14.0
> Reporter: Paolo Antinori
> Fix For: 2.14.1, 2.15.0
>
>
> See https://github.com/hawtio/hawtio/issues/1202
> There could be a problem in {{camel-core}} with the graph model generation, in presence of multiple {{end()}} calls.
> {code:java}
> from("direct:whatever")
> .split(body()).parallelProcessing().streaming()
> .setHeader("", simple(""))
> .process(new Processor() {
> @Override
> public void process(Exchange exchange) throws Exception {
>
> }
> })
> .choice()
> .when(simple("something"))
> .to("direct:a")
> .when(simple("something2"))
> .to("direct:b")
> .when(simple("something3"))
> .to("direct:c")
> .otherwise()
> .log("whatever")
> .end()
> .end()
> .log("very last");
> {code}
> Produces the equivalent of this xml dump:
> {code:xml}
> <route xmlns="http://camel.apache.org/schema/spring" id="route2">
> <from uri="direct:whatever1"/>
> <split parallelProcessing="true" streaming="true">
> <expressionDefinition>body</expressionDefinition>
> <setHeader headerName="">
> <simple/>
> </setHeader>
> <process/>
> <choice>
> <when>
> <simple>something</simple>
> <to uri="direct:a"/>
> </when>
> <when>
> <simple>something2</simple>
> <to uri="direct:b"/>
> </when>
> <when>
> <simple>something3</simple>
> <to uri="direct:c"/>
> </when>
> <otherwise>
> <log message="whatever"/>
> </otherwise>
> </choice>
> </split>
> <log message="very last"/>
> </route>
> {code}
> while using *{{endChoice()}}* in place of the inner *{{end()}}*
> it produces:
> {code:xml}
> <route xmlns="http://camel.apache.org/schema/spring" id="route3">
> <from uri="direct:whatever2"/>
> <split parallelProcessing="true" streaming="true">
> <expressionDefinition>body</expressionDefinition>
> <setHeader headerName="">
> <simple/>
> </setHeader>
> <process/>
> <choice>
> <when>
> <simple>something</simple>
> <to uri="direct:a"/>
> </when>
> <when>
> <simple>something2</simple>
> <to uri="direct:b"/>
> </when>
> <when>
> <simple>something3</simple>
> <to uri="direct:c"/>
> </when>
> <otherwise>
> <log message="whatever"/>
> </otherwise>
> </choice>
> <log message="very last"/>
> </split>
> </route>
> {code}
> Where the difference is in the location of the line *<log message="very last"/>*
> Is this behavior correct? or should this work already without the need of *{{endChoice()}}* statement?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)