Camel cxf causes 100% CPU for I/O dispatcher thread when soap fault

Viewed 107

We are using Java 8, SOAP, Apache Camel and the camel-cxf component to route messageges. Everything works fine until we encounter a unmarshalling error in the response. What happens is that the CPU gets 100% on a I/O Dispatcher thread. The thread is RUNNING and not BLOCKED.

What we do is requesting a list of adresses that we send through a splitter that aggregates the responses.

.split(body()).executorServiceRef("splitterThreadPool")
            .timeout(aggregationTimeout)
            .parallelProcessing(true)
            .aggregationStrategy(agpAggregationStrategy
             ...
    .toD("direct:${exchangeProperty.AgpServiceComponentId}")
.end()

If one response causes an unmarshalling error we get this problem. The dispatcher thread will take all CPU until the service is restarted. Has anyone encountered a similar problem and how did you solve it? There are other soap faults that do not create this problem.

0 Answers
Related