Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.20.3, 2.21.0
-
None
-
Windows 8, java 1.8.0_162, camel 2.21.0
-
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.