Details
-
Type:
Bug
-
Status: Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.20.3, 2.21.0
-
Component/s: camel-core
-
Labels:None
-
Environment:
Windows 8, java 1.8.0_162, camel 2.21.0
-
Estimated Complexity:Unknown
Description
After upgrading from camel 2.17.5 to 2.21.0 the following problem was encountered:
Context:
A camel RouteBuilder with a split :
MyRouteBuilder.java
public class MyRouteBuilder extends RouteBuilder { @Override public void configure() throws Exception { from("direct:in") .split() .xtokenize("//someTocken", 'i', NAMESPACES) .aggregationStrategy(nw UseLatestAggregationStrategy()) .stopOnException() .parallelAggregate() .parallelProcessing() .executorServiceRef("splitExecutorService").stopOnException() .streaming().stopOnException() .id("xml-splitter") .to("direct:out") .routeId(getClass().getSimpleName()); } }
Problem encountered:
A malformed xml arrives on this route. it.hasNext() returns true but it.next() throws an exception. This causes an indefinite wait in MulticastProcessor at line 374.
Reason:
A call to countDown on aggregationOnTheFlyDone is never performed and thus the latch waits indefinitely.
Possible solution:
A call to aggregationOnTheFlyDone .countDown inside the catch corresponding to the try surrounding the while.