[ https://issues.apache.org/activemq/browse/CAMEL-1509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50987#action_50987 ]
Claus Ibsen edited comment on CAMEL-1509 at 4/2/09 12:20 AM: ------------------------------------------------------------- Yeah the logic is a bit special I guess it needs to be set as Started before starting all its child services. I am just guessing here. James S. might remember. However it could be that the *isStarted* method could be changed to: {code} public boolean isStarted() { return started.get() && !starting.get(); } {code} Then it will only return true when the starting is complete. was (Author: davsclaus): Yeah the logic is a bit special I guess it needs to be set as Started before starting all its child services. I am just guessing here. James S. might remember. However it could be that the isStarting method could be changed to: {code} public boolean isStarted() { return started.get() && !starting.get(); } {code} Then it will only return true when the starting is complete. > 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.