Hello Claus,

Thanks for confirming. I wanted to create a ticket but I have no account. Would 
it be possible to create one?

Thanks
Sydney
________________________________
From: Claus Ibsen <claus.ib...@gmail.com>
Sent: Saturday, February 18, 2023 8:03 PM
To: users@camel.apache.org <users@camel.apache.org>
Subject: Re: Start a route with aggregation fails due to NPE in 
AggregateProcessor

Hi

Yes that sounds plausible. So it would be good in the camel code, to check
for null exchange

On Sat, Feb 18, 2023 at 6:46 PM Sydney Henrard <shenr...@smartwavesa.com>
wrote:

> Hello,
>
> In my application I have a route with an aggregation using an aggregation
> repository ClusteredJdbcAggregationRepository and completionTimeout. This
> route is part of a micro service that can be scaled. From time to time, the
> micro service does not start due to a NPE:
>
> Caused by: java.lang.NullPointerException: Cannot invoke
> "org.apache.camel.Exchange.getProperty(org.apache.camel.ExchangePropertyKey,
> Object, java.lang.Class)" because "exchange" is null
>         at
> org.apache.camel.processor.aggregate.AggregateProcessor.restoreTimeoutMapFromAggregationRepository(AggregateProcessor.java:920)
> ~[camel-core-processor-3.20.1.jar:3.20.1]
>
> Looking at the code in
> https://github.com/apache/camel/blob/camel-3.20.1/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java#L920
>
> In my case the exchange is null because it has already been processed by
> one of the micro service instance.
>
> for (String key : keys) {
>     Exchange exchange = aggregationRepository.get(camelContext, key);
>     // grab the timeout value
>     long timeout =
> exchange.getProperty(ExchangePropertyKey.AGGREGATED_TIMEOUT, 0L,
> long.class);
>
> Is my assumption correct?
>
> Sydney
>
>
>
>
>
>

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

Reply via email to