Francesco Spampinato created CAMEL-22759:
--------------------------------------------
Summary: Camel context null during test execution
Key: CAMEL-22759
URL: https://issues.apache.org/jira/browse/CAMEL-22759
Project: Camel
Issue Type: Bug
Components: camel-caffeine
Affects Versions: 4.15.0
Reporter: Francesco Spampinato
Hi,
during test execution of camel flow that use caffeine component, camelContext
is null and a NullPointerException is raised.
This is the error raised
{code:java}
org.apache.camel.FailedToStartRouteException: Failed to start route: route1
because: java.lang.NullPointerException: Cannot invoke
"org.apache.camel.CamelContext.getCamelContextExtension()" because
"this.camelContext" is null at
org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:129)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.InternalRouteStartupManager.doWarmUpRoutes(InternalRouteStartupManager.java:329)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:198)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:132)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3121)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2733)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2688)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.spring.boot.SpringBootCamelContext.doStart(SpringBootCamelContext.java:57)
~[camel-spring-boot-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2275)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211)
~[camel-core-engine-4.16.0.jar:4.16.0] at
org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:121)
~[camel-spring-4.16.0.jar:4.16.0] at
org.apache.camel.test.spring.junit5.CamelAnnotationsHandler.lambda$handleCamelContextStartup$8(CamelAnnotationsHandler.java:516)
~[camel-test-spring-junit5-4.16.0.jar:4.16.0] at
org.apache.camel.test.spring.junit5.CamelSpringTestHelper.doToSpringCamelContexts(CamelSpringTestHelper.java:108)
~[camel-test-spring-junit5-4.16.0.jar:4.16.0] at
org.apache.camel.test.spring.junit5.CamelAnnotationsHandler.handleCamelContextStartup(CamelAnnotationsHandler.java:513)
~[camel-test-spring-junit5-4.16.0.jar:4.16.0] at
org.apache.camel.test.spring.junit5.CamelSpringBootExecutionListener.beforeTestMethod(CamelSpringBootExecutionListener.java:107)
~[camel-test-spring-junit5-4.16.0.jar:4.16.0] at
org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320)
~[spring-test-6.2.14.jar:6.2.14] at
org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:236)
~[spring-test-6.2.14.jar:6.2.14] at
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachCallbacks$2(TestMethodTestDescriptor.java:165)
~[junit-jupiter-engine-5.12.2.jar:5.12.2] at
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:201)
~[junit-jupiter-engine-5.12.2.jar:5.12.2] at
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:201)
~[junit-jupiter-engine-5.12.2.jar:5.12.2] at
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachCallbacks(TestMethodTestDescriptor.java:164)
~[junit-jupiter-engine-5.12.2.jar:5.12.2] at
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131)
~[junit-jupiter-engine-5.12.2.jar:5.12.2] at
org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
~[junit-jupiter-engine-5.12.2.jar:5.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:156)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
java.base/java.util.ArrayList.forEach(ArrayList.java:1604) ~[na:na] at
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
java.base/java.util.ArrayList.forEach(ArrayList.java:1604) ~[na:na] at
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
~[junit-platform-engine-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:201)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:170)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:94)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:59)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:142)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:58)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:94)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:52)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$2(InterceptingLauncher.java:47)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:46)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:52)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:70)
~[junit-platform-launcher-1.12.2.jar:1.12.2] at
org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:100)
~[.cp/:na] at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
~[.cp/:na] at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:520)
~[.cp/:na] at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:748)
~[.cp/:na] at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:443)
~[.cp/:na] at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:211)
~[.cp/:na]Caused by: org.apache.camel.RuntimeCamelException:
java.lang.NullPointerException: Cannot invoke
"org.apache.camel.CamelContext.getCamelContextExtension()" because
"this.camelContext" is null at
org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:53)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:68)
~[camel-support-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:127)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:114)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:153)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.DefaultChannel.doStart(DefaultChannel.java:130)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:127)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:114)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:139)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:116)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:153)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.processor.Pipeline.doStart(Pipeline.java:204)
~[camel-core-processor-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:127)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:114)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:102)
~[camel-support-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:127)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.RouteService.startChildServices(RouteService.java:419)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.RouteService.doWarmUp(RouteService.java:217)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:127)
~[camel-base-engine-4.16.0.jar:4.16.0] ... 75 common frames omittedCaused
by: java.lang.NullPointerException: Cannot invoke
"org.apache.camel.CamelContext.getCamelContextExtension()" because
"this.camelContext" is null at
org.apache.camel.support.HeaderSelectorProducer.doBuild(HeaderSelectorProducer.java:109)
~[camel-support-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.build(BaseService.java:64)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.buildService(ServiceHelper.java:56)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.processor.DelegateAsyncProcessor.doBuild(DelegateAsyncProcessor.java:92)
~[camel-support-4.16.0.jar:4.16.0] at
org.apache.camel.processor.AutoMockInterceptProducer.doBuild(AutoMockInterceptProducer.java:102)
~[camel-core-processor-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.build(BaseService.java:64)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.init(BaseService.java:82)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.start(BaseService.java:115)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:127)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.InternalServiceManager.doAddService(InternalServiceManager.java:144)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.impl.engine.AbstractCamelContext.addService(AbstractCamelContext.java:1552)
~[camel-base-engine-4.16.0.jar:4.16.0] at
org.apache.camel.processor.SendProcessor.doStart(SendProcessor.java:332)
~[camel-core-processor-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.BaseService.start(BaseService.java:123)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:127)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:114)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:153)
~[camel-api-4.16.0.jar:4.16.0] at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1686)
~[camel-core-processor-4.16.0.jar:4.16.0] at
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:61)
~[camel-support-4.16.0.jar:4.16.0] ... 95 common frames omitted {code}
This is the simple flow created
{code:java}
from(direct("start"))
.to("caffeine-cache://cache?action=PUT&key=1")
.setBody(constant("new value"))
.log("Body: ${body}")
.to("caffeine-cache://cache?key=1&action=GET")
.log("${header.CamelCaffeineActionHasResult}")
.log("Body: ${body}"); {code}
This is the test class
{code:java}
@SpringBootTest
@CamelSpringBootTest
@MockEndpoints
class IntegrationTest {
@EndpointInject("mock:caffeine-cache:cache")
private MockEndpoint cache;
@Autowired
private ProducerTemplate producer;
@Test
void testCache() throws InterruptedException {
cache.expectedMessageCount(2);
cache.expectedBodiesReceived("value!!!", "new value");
cache.allMessages().body().isInstanceOf(String.class);
producer.sendBody("direct:start", "value!!!");
cache.assertIsSatisfied();
}
} {code}
Same code using version 4.14.2 work fine.
This is the link to a Github repo with the issue reproduced
[Code|https://github.com/spampibridge/camel-cache.git]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)