Grzegorz Rozanski created CAMEL-21376:
-----------------------------------------

             Summary: UseOriginalAggregationStrategy - null pointer
                 Key: CAMEL-21376
                 URL: https://issues.apache.org/jira/browse/CAMEL-21376
             Project: Camel
          Issue Type: Bug
          Components: came-core
    Affects Versions: 4.8.0
            Reporter: Grzegorz Rozanski
         Attachments: camel-null-pointer.log

I found a case when NullPointerException occurs in 
UseOriginalAggregationStrategy's aggregate method.
 
I have this route configuration:
 
.multicast(AggregationStrategies.useOriginal()).parallelProcessing()
.to(DIRECT_ROUTE1)
.to(DIRECT_ROUTE2)
 
and in DIRECT_ROUTE2 there's this code:
[...]
.doTry()
.unmarshal().zipFile()
[...]
 
when the zip file is invalid there's exception handling in 
UseOriginalAggregationStrategy::aggregate method:
 
[...]
exception = checkCaughtException(oldExchange, newExchange);
if (exception != null) {
if (original != null) {
original.setProperty(Exchange.EXCEPTION_CAUGHT, exception);
} else {
*oldExchange.setProperty(Exchange.EXCEPTION_CAUGHT, exception);*
}
}
[...]
 
I checked javadoc about this aggregate method it says that:
Params:
oldExchange - the oldest exchange (is null on first aggregation as we only have 
the new exchange)
 
and I think this is what happens in my case when I get NullPointerException in 
line 78 (oldExchange is null):
 
} else {
*oldExchange.setProperty(Exchange.EXCEPTION_CAUGHT, exception);*
}
 
When I create my own aggregation strategy based on 
UseOriginalAggregationStrategy and modify this `else` part everything works 
properly:
 
} else if (oldExchange != null) {
oldExchange.setProperty(Exchange.EXCEPTION_CAUGHT, exception);
}
 
I see that similar null check already exists in checkCaughtException method.
 
 The full stack trace can be found as attachment to this ticket.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to