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)

Reply via email to