[
https://issues.apache.org/activemq/browse/CAMEL-803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-803.
-------------------------------
Resolution: Fixed
Fixed in rev 684301
> ValidatingProcessor not thread-safe
> -----------------------------------
>
> Key: CAMEL-803
> URL: https://issues.apache.org/activemq/browse/CAMEL-803
> Project: Apache Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 1.4.0
> Reporter: Martin Krasser
> Assignee: Claus Ibsen
> Fix For: 1.5.0
>
>
> The method
> org.apache.camel.processor.validation.ValidatingProcessor.process() is
> executed concurrently but error information is stored in a shared
> errorHandler. Because each thread calls errorHandler.reset() it may clean
> errors written by another thread. The easiest way to fix this issue would be
> a synchronized block:
> {code:java|title=ValidatingProcessor.java}
> ...
> synchronized (errorHandler) {
> errorHandler.reset();
> validator.setErrorHandler(errorHandler);
>
> DOMResult result = new DOMResult();
> validator.validate(source, result);
>
> errorHandler.handleErrors(exchange, schema, result);
> }
> ...
> {code}
> The disadvantage of this solution is that is serializes threads. A locally
> created error handler would be preferrable ...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.