[ https://issues.apache.org/jira/browse/CAMEL-3277?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13037628#comment-13037628 ]
Fernando Racca commented on CAMEL-3277: --------------------------------------- Managed to reproduce this issue with Camel 2.7.0 A simple HTTP request followed by an XPath expression in a bean. public class PricesParser { public static void main(String args[]) throws Exception { // create CamelContext CamelContext context = new DefaultCamelContext(); // add our route to the CamelContext context.addRoutes(new RouteBuilder() { public void configure() { from("http://url").bean(new MyBean()).to("file:target/prices"); // start the route and let it do its work context.start(); Thread.sleep(3000); // stop the CamelContext context.stop(); } public static class MyBean { public String parse(@XPath("//div[@id='prices']") String prices) { return prices; } } However, all converters seem to have loaded: ......... [ main] AnnotationTypeConverterLoader INFO Found 4 packages with 15 @Converter classes to load [ main] DefaultTypeConverter INFO Loaded 157 type converters in 0.515 seconds main] DefaultCamelContext INFO Route: route1 started and consuming from: Endpoint[http://url] [ main] DefaultCamelContext INFO Total 1 routes, of which 1 is started. [ main] DefaultCamelContext INFO Apache Camel 2.7.0 (CamelContext: camel-1) started in 1.914 seconds [url] route1 INFO before [ main] DefaultCamelContext INFO Apache Camel 2.7.0 (CamelContext:camel-1) is shutting down [ main] DefaultShutdownStrategy INFO Starting to graceful shutdown 1 routes (timeout 300 seconds) [ main] DefaultExecutorServiceStrategy DEBUG Created new single thread pool for source: org.apache.camel.impl.DefaultShutdownStrategy@64c5e2cf with name: ShutdownTask. -> java.util.concurrent.Executors$FinalizableDelegatedExecutorService@95d0a50 [el-1) thread #1 - ShutdownTask] DefaultShutdownStrategy DEBUG There are 1 routes to shutdown [el-1) thread #1 - ShutdownTask] DefaultShutdownStrategy DEBUG Suspend complete for: Consumer[http://url] [el-1) thread #1 - ShutdownTask] DefaultShutdownStrategy INFO Route: route1 suspended and shutdown deferred, was consuming from: Endpoint[http://url] Unit tests that don't read from that http url seem to work fine. Should i open a new jira for this? > Threading issue which lets converter loading abort > -------------------------------------------------- > > Key: CAMEL-3277 > URL: https://issues.apache.org/jira/browse/CAMEL-3277 > Project: Camel > Issue Type: Bug > Components: camel-core > Affects Versions: 2.4.0 > Environment: SMX 4 > Reporter: Lars Heinemann > Assignee: Claus Ibsen > Fix For: 2.6.0 > > Attachments: patch.diff > > > The type converter loading is not threadsafe and fails sometimes. That will > end up with around 17 type converters loaded only which will probably let > your camel routes fail with conversion errors like: > {noformat} > 07:04:31,112 | ERROR | qtp25205731-2783 | DefaultErrorHandler | > rg.apache.camel.processor.Logger 248 | 68 - org.apache.camel.camel-core - > 2.4.0.fuse-00-00 | Failed delivery for exchangeId: > 53e23457-5551-4487-9fc4-87dd33687f0b. Exhausted after delivery attempt: 1 > caught: java.lang.ClassCastException: > org.apache.camel.converter.stream.InputStreamCache cannot be cast to > org.w3c.dom.Node > java.lang.ClassCastException: > org.apache.camel.converter.stream.InputStreamCache cannot be cast to > org.w3c.dom.Node > at > com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl.eval(XPathExpressionImpl.java:116)[:1.6.0_17] > at > com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl.eval(XPathExpressionImpl.java:98)[:1.6.0_17] > at > com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:180)[:1.6.0_17] > at > org.apache.camel.builder.xml.XPathBuilder.doInEvaluateAs(XPathBuilder.java:598)[68:org.apache.camel.camel-core:2.4.0.fuse-00-00] > at > org.apache.camel.builder.xml.XPathBuilder.evaluateAs(XPathBuilder.java:570)[68:org.apache.camel.camel-core:2.4.0.fuse-00-00] > at > org.apache.camel.builder.xml.XPathBuilder.matches(XPathBuilder.java:122)[68:org.apache.camel.camel-core:2.4.0.fuse-00-00] > {noformat} > Tracking the issue down showed that several type converter loaders share the > same registry object and fail to load all converters every once a while. That > can be fixed by making the load method synchronized...see attached patch. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira