[
https://issues.apache.org/jira/browse/CAMEL-23023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18065179#comment-18065179
]
Claus Ibsen commented on CAMEL-23023:
-------------------------------------
Okay I now defer starting those consumers and you have
{code:java}
2026-03-11T20:37:58.417+01:00 INFO 25615 --- [ main]
o.a.c.impl.engine.AbstractCamelContext : Apache Camel 4.19.0-SNAPSHOT
(camel-1) started in 16ms (build:0ms init:0ms start:16ms)
>>> Sleeping 30 sec <<<<
2026-03-11T20:38:28.422+01:00 INFO 25615 --- [ main]
o.a.c.component.kafka.KafkaComponent : Starting 1 pending Kafka consumers
as CamelContext is fully started {code}
> CamelContext Startup behavior interfers with Spring Lifecycle
> -------------------------------------------------------------
>
> Key: CAMEL-23023
> URL: https://issues.apache.org/jira/browse/CAMEL-23023
> Project: Camel
> Issue Type: Bug
> Components: camel-spring
> Affects Versions: 4.8.7
> Reporter: Christoph Ewerlin
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.19.0
>
>
> SpringCamelContext registers to ApplicationEvent "ContextRefreshed" and then
> starts the CamelContext, see SpringCamelContext::onApplicationEvent.
> There is also a comment saying that
> {code:java}
> // nominally we would prefer to use Lifecycle interface that
> // would invoke start() method, but in order to do that
> // SpringCamelContext needs to implement SmartLifecycle
> // (look at DefaultLifecycleProcessor::startBeans), but it
> // cannot implement it as it already implements
> // RuntimeConfiguration, and both SmartLifecycle and
> // RuntimeConfiguration declare isAutoStartup method but
> // with boolean and Boolean return types, and covariant
> // methods with primitive types are not allowed by the JLS
> // so we need to listen for ContextRefreshedEvent and start
> // on its reception {code}
> The problem with that is, that for instance KafkaConsumers are started as
> part of the lifecycle before the CamelContext is starting, which in our case
> results in messages being consumed and delegated to a camel route, before the
> context is started -> exception, message loss.
> The ideal behavior would be that the camel context is started BEFORE the
> kafka listeners start to fire.
> In case it is difficult to fix, maybe it will be an option to update it
> together with the spring boot 4 integration ticket?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)