Apache camel imap "Error accessing headers due to: charset"

415 Views Asked by At

I've written a Camel processor to manipulate an imap mailbox, it runs fine in the dev environment (using greenmail in a docker container) but when deployed in production attached to aruba mail I start getting the following exception

19:50:55.215 [Camel (camel-1) thread #0 - imap://imap.scontrinando.it:143] WARN  o.a.c.component.mail.MailConsumer - Caused by: [org.apache.camel.RuntimeCamelException - Error accessing headers due to: charset]
org.apache.camel.RuntimeCamelException: Error accessing headers due to: charset
at org.apache.camel.component.mail.MailMessage.populateInitialHeaders(MailMessage.java:121)
at org.apache.camel.impl.DefaultMessage.createHeaders(DefaultMessage.java:200)
at org.apache.camel.impl.DefaultMessage.getHeaders(DefaultMessage.java:164)
at org.apache.camel.component.mail.MailConsumer.createExchanges(MailConsumer.java:355)
at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:128)
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.UnsupportedEncodingException: charset
at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:71)
at java.io.InputStreamReader.<init>(InputStreamReader.java:100)
at com.sun.mail.handlers.text_plain.getContent(text_plain.java:80)
at javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:795)
at javax.activation.DataHandler.getContent(DataHandler.java:542)
at javax.mail.internet.MimeBodyPart.getContent(MimeBodyPart.java:657)
at org.apache.camel.component.mail.MailBinding.extractHeadersFromMail(MailBinding.java:616)
at org.apache.camel.component.mail.MailMessage.populateInitialHeaders(MailMessage.java:116)
... 13 common frames omitted

some mail have been read and correctly handled but now the process is stuck looping on this error.

The connection URI is

"imap://${config.inbox.host}?username=${config.inbox.username}&password=${config.inbox.password}" \
    + "&ignoreUnsupportedCharset=true" \
    + "&delete=false" \
    + (unread?"&peek=true":"") \
    + "&unseen=true" \
    + "&consumer.delay=600" \
    + "&fetchSize=10" \
    + "&maxMessagesPerPoll=10"
0

There are 0 best solutions below