Laurent Chabot created CAMEL-14616: -------------------------------------- Summary: AttachmentConverter is not automatically discovered Key: CAMEL-14616 URL: https://issues.apache.org/jira/browse/CAMEL-14616 Project: Camel Issue Type: Bug Components: camel-mail Affects Versions: 3.0.1, 3.0.0, 3.1.0 Environment: Reproduced on Windows 7 and CentOS 6.10, with Oracle JDK 8, OpenJDK 8 and OpenJDK 11. Reporter: Laurent Chabot Fix For: Future
I have a very basic usage of camel-mail that's been working fine with Camel 2.x: {code:java} import java.io.IOException; import org.apache.camel.CamelContext; import org.apache.camel.ProducerTemplate; import org.apache.camel.impl.DefaultCamelContext; public class MailTest { public static void main(String[] args) throws IOException { try (CamelContext ctx = new DefaultCamelContext(); ProducerTemplate pt = ctx.createProducerTemplate()) { ctx.start(); pt.sendBody("smtp://localhost:25?to=me@mydomain", "Hello, World"); } } } {code} It is packaged as an executable jar using maven-assembly-plugin jar-with-dependencies. When I run it with Camel 3.x (tested with 3.0.0, 3.0.1 and 3.1.0), I get below error: {noformat} Exception in thread "main" org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[] at org.apache.camel.CamelExecutionException.wrapCamelExecutionException(CamelExecutionException.java:47) at org.apache.camel.support.ExchangeHelper.extractResultBody(ExchangeHelper.java:636) at org.apache.camel.impl.engine.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:568) at org.apache.camel.impl.engine.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:564) at org.apache.camel.impl.engine.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:189) at org.apache.camel.impl.engine.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:195) at MailTest.main(MailTest.java:10) Caused by: java.lang.NullPointerException at org.apache.camel.component.mail.MailBinding.populateMailMessage(MailBinding.java:133) at org.apache.camel.component.mail.MailProducer.process(MailProducer.java:61) at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:67) at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:212) at org.apache.camel.processor.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:110) at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:84) at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:107) at org.apache.camel.impl.engine.DefaultProducerCache.send(DefaultProducerCache.java:185) at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176) at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172) at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:153) at org.apache.camel.impl.engine.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:187) ... 2 more {noformat} Conversion of the in message to AttachmentMessage appears to be failing. When I checked file _META-INF/services/org/apache/camel/TypeConverterLoader_ in my assembled jar, it was missing the "org.apache.camel.attachment.AttachmentConverterLoader" entry. If I now add the following line after starting the Camel context: {code:java} new AttachmentConverterLoader().load(ctx.getTypeConverterRegistry()); {code} then mail sending is working fine again. Am I doing smth wrong or is this a Camel 3.x bug? Possible link with CAMEL-13677? -- This message was sent by Atlassian Jira (v8.3.4#803005)