[ 
https://issues.apache.org/activemq/browse/CAMEL-1509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50986#action_50986
 ] 

Willem Jiang commented on CAMEL-1509:
-------------------------------------

@Marat

I  think we set tthe started and stopped to true at first line is to avoid 
different thread calling the start() or stop() more than twice at the same time.
For the thread1, and thread2 call the start() and stop() at the same time I 
don't think it will happen in normal situation. 


> 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.

Reply via email to