[ https://issues.apache.org/activemq/browse/CAMEL-1509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50971#action_50971 ]
Willem Jiang commented on CAMEL-1509: ------------------------------------- Here your are the starting codes {code} public void start() throws Exception { if (started.compareAndSet(false, true)) { starting.set(true); try { if (childServices != null) { ServiceHelper.startServices(childServices); } doStart(); } finally { notStarting(); } } } {code} started and starting flag are false by default. if the camel context finishe the start process, the staring flag wil be set to false again. So , if the camel context's start method doesn't be called , isStarting != ! isStarted. > DefaultCamelContext.isStarting returns incorrect status > ------------------------------------------------------- > > Key: CAMEL-1509 > URL: https://issues.apache.org/activemq/browse/CAMEL-1509 > Project: Apache Camel > Issue Type: Bug > Components: camel-core > Affects Versions: 1.6.0, 2.0-M1 > Reporter: Alexander Kleymenov > Assignee: Willem Jiang > > DefaultCamelContext.isStarting returns true while it actually not started. > So the following groovy test case fails: > {code:title=test.groovy} > import org.apache.camel.impl.DefaultCamelContext; > import org.apache.camel.language.groovy.GroovyRouteBuilder; > class Foo { > def name > def data > void run(data) { > println "[${name}] got ${data}" > this.data = data > } > } > public class MyRoute extends GroovyRouteBuilder { > def bean = new Foo(name: "bean") > protected void configure() { > from("direct:start").bean(bean, "run") > } > } > camelCtx = new DefaultCamelContext() > route = new MyRoute() > camelCtx.addRoutes(route); > Thread.start { > camelCtx.start(); > } > while (camelCtx.isStarting()) { > Thread.sleep(1000) > } > camelCtx.createProducerTemplate().sendBody("direct:start", "data") > if (!route.bean.data) { > println "FAILED: no data has been received!" > } else { > println "PASSED" > } > camelCtx.stop(); > {code} > Note, after moving of > {code} > camelCtx.addRoutes(route) > {code} > after > {code} > Thread.start { > camelCtx.start(); > } > {code} > the test passes. > Also the program does not finish after camelCtx.stop(); -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.