Hi Mark,
This looks like a bug to me. During startup the AggregateProcessor first queries the exchange IDs in the table and then tries to read them using the IDs. So if the exchange completes between these 2 queries, the second select will return null. The AggregateProcessor should check for a null Exchange in this case before trying to defreference it.
Would you like to create a JIRA issue?

Regards,
Karen Lease

On 10/03/2022 23:30, Mark Nuttall wrote:
FYI we tried using ClusterJDBCAggregationRepository, but we can’t use
because it requires instance_id.
Also, our organization does not have support for StatefulSet so we can't
use that.

On Thu, Mar 10, 2022 at 5:14 PM Mark Nuttall <mknutt...@gmail.com> wrote:

Sorry Claus, I should have included that. I was jumping back and forth on
multiple things :(

Camel 3.12.0 (using Java DSL)
Spring Boot 2.5.5
Java 11

Thank you!

On Thu, Mar 10, 2022 at 1:32 PM Claus Ibsen <claus.ib...@gmail.com> wrote:

Hi

What version of Camel do you use?

On Thu, Mar 10, 2022 at 5:54 PM Mark Nuttall <mknutt...@gmail.com> wrote:

Has anyone successfully gotten JDBC Aggregation to work with K8s
(Kubernetes)?  We are struggling to make it work and maybe we are just
missing something.

Each instance  (pod) gets a list of aggregating exchanges, then
populates
information about the exchanges, and if an exchange completes in between
then the pods will fail to start.

Here is the exception

org.apache.camel.FailedToStartRouteException: Failed to start route
receive-open-tracking-message because of null
         at
org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:123)
         at
org.apache.camel.impl.engine.InternalRouteStartupManager.doWarmUpRoutes(InternalRouteStartupManager.java:306)
         at
org.apache.camel.impl.engine.InternalRouteStartupManager.safelyStartRouteServices(InternalRouteStartupManager.java:189)
         at
org.apache.camel.impl.engine.InternalRouteStartupManager.doStartOrResumeRoutes(InternalRouteStartupManager.java:147)
         at
org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3198)
         at
org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2862)
         at
org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2813)
         at
org.apache.camel.spring.boot.SpringBootCamelContext.doStart(SpringBootCamelContext.java:43)
         at
org.apache.camel.support.service.BaseService.start(BaseService.java:119)
         at
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2509)
         at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:246)
         at
org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:119)
         at
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:151)
         at
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
         at
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
         at
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
         at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:421)
         at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378)
         at
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:938)
         at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
         at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
         at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
         at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)
         at
org.springframework.boot.SpringApplication.run(SpringApplication.java:338)
         at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
         at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1332)
         at
com.ac.campaign.CampaignsAggregatorApplication.main(CampaignsAggregatorApplication.java:12)
         at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
         at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
         at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
         at java.base/java.lang.reflect.Method.invoke(Unknown Source)
         at
org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
         at
org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
         at
org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
         at
org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: org.apache.camel.RuntimeCamelException:
java.lang.NullPointerException
         at
org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:51)
         at
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:67)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:130)
         at
org.apache.camel.impl.engine.DefaultChannel.doStart(DefaultChannel.java:126)
         at
org.apache.camel.support.service.BaseService.start(BaseService.java:119)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:116)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:130)
         at
org.apache.camel.processor.Pipeline.doStart(Pipeline.java:221)
         at
org.apache.camel.support.service.BaseService.start(BaseService.java:119)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
         at
org.apache.camel.support.processor.DelegateAsyncProcessor.doStart(DelegateAsyncProcessor.java:89)
         at
org.apache.camel.support.service.BaseService.start(BaseService.java:119)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
         at
org.apache.camel.impl.engine.RouteService.startChildServices(RouteService.java:396)
         at
org.apache.camel.impl.engine.RouteService.doWarmUp(RouteService.java:193)
         at
org.apache.camel.impl.engine.RouteService.warmUp(RouteService.java:121)
         ... 34 common frames omitted
Caused by: java.lang.NullPointerException: null
         at
org.apache.camel.processor.aggregate.AggregateProcessor.restoreTimeoutMapFromAggregationRepository(AggregateProcessor.java:911)
         at
org.apache.camel.processor.aggregate.AggregateProcessor.doStart(AggregateProcessor.java:1572)
         at
org.apache.camel.support.service.BaseService.start(BaseService.java:119)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:113)
         at
org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:130)
         at
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.doStart(RedeliveryErrorHandler.java:1644)
         at
org.apache.camel.support.ChildServiceSupport.start(ChildServiceSupport.java:60)
         ... 50 common frames omitted



--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2



Reply via email to