You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Willem Jiang (JIRA)" <ji...@apache.org> on 2009/04/02 04:29:34 UTC
[jira] Commented: (CAMEL-1509) DefaultCamelContext.isStarting
returns incorrect status
[ https://issues.apache.org/activemq/browse/CAMEL-1509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=50969#action_50969 ]
Willem Jiang commented on CAMEL-1509:
-------------------------------------
Hi
Can you add a check for the camelCtx.isStarted() for waiting for camelCtx starting?
{code}
camelCtx = new DefaultCamelContext()
route = new MyRoute()
camelCtx.addRoutes(route);
Thread.start {
camelCtx.start();
}
while (!camelCtx.isStarted() || camelCtx.isStarting()) {
Thread.sleep(1000)
}
{code}
I just checked the code. If the camelCtx.start() code is running later than the camelCtx.isStarting() check,
the test will failed since the route rule is not started yet.
> 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.