You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Christoph Ewerlin (Jira)" <ji...@apache.org> on 2026/02/17 13:47:00 UTC
[jira] [Created] (CAMEL-23023) CamelContext Startup behavior interfers with Spring Lifecycle
Christoph Ewerlin created CAMEL-23023:
-----------------------------------------
Summary: 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
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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)