You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Bodor Maria Mihaela (JIRA)" <ji...@apache.org> on 2018/04/13 08:01:00 UTC
[jira] [Created] (CAMEL-12441) MulticastProcessor doProcessParallel
blocks indefinitly if exception occurs in it.next()
Bodor Maria Mihaela created CAMEL-12441:
-------------------------------------------
Summary: MulticastProcessor doProcessParallel blocks indefinitly if exception occurs in it.next()
Key: CAMEL-12441
URL: https://issues.apache.org/jira/browse/CAMEL-12441
Project: Camel
Issue Type: Bug
Components: camel-core
Affects Versions: 2.21.0, 2.20.3, 2.20.2, 2.20.1, 2.20.0, 2.19.5
Environment: Windows 8, java 1.8.0_162, camel 2.21.0
Reporter: Bodor Maria Mihaela
Fix For: 2.21.1
After upgrading from camel 2.17.5 to 2.21.0 the following problem was encountered:
Context:
A camel RouteBuilder with a split :
{code:title=MyRouteBuilder.java|borderStyle=solid}
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());
}
}
{code}
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.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)