Laabidi Raissi created CAMEL-7739:
-------------------------------------
Summary: camel-mail poller onCompletion Folder is not Open
Key: CAMEL-7739
URL: https://issues.apache.org/jira/browse/CAMEL-7739
Project: Camel
Issue Type: Bug
Components: camel-core, camel-mail
Affects Versions: 2.13.0
Reporter: Laabidi Raissi
I think I found a bug in Camel OncompletionProcessor code when used with a Mail
poller route and onCompletion.
The error occurs when the Log level is set to DEBUG or TRACE. In that case the
logger tries to call the toString() method of the DefaultExchange class which
calls org.apache.camel.component.mail.MailMessage.toString().
At that stage, the POP3Folder is already closed.
A very obvious (but not elegant) solution, would be to add a try-catch block to
the log instruction.
Otherwise, I think a good solution is to change the DefaultExchange#toString
method.
Here is the exception that occured:
java.lang.IllegalStateException: Folder is not Open
at com.sun.mail.pop3.POP3Folder.checkOpen(POP3Folder.java:551)
at com.sun.mail.pop3.POP3Folder.getProtocol(POP3Folder.java:581)
at com.sun.mail.pop3.POP3Message.loadHeaders(POP3Message.java:606)
at com.sun.mail.pop3.POP3Message.getHeader(POP3Message.java:383)
at
javax.mail.internet.MimeMessage.getAddressHeader(MimeMessage.java:701)
at javax.mail.internet.MimeMessage.getFrom(MimeMessage.java:362)
at
org.apache.camel.component.mail.MailUtils.dumpMessage(MailUtils.java:106)
at
org.apache.camel.component.mail.MailMessage.toString(MailMessage.java:49)
at java.lang.String.valueOf(String.java:2854)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at
org.apache.camel.impl.DefaultExchange.toString(DefaultExchange.java:81)
at
org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:304)
at
org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:276)
at
org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:230)
at ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:115)
at
ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:439)
at ch.qos.logback.classic.Logger.filterAndLog_1(Logger.java:413)
at ch.qos.logback.classic.Logger.debug(Logger.java:506)
at
org.apache.camel.processor.OnCompletionProcessor$OnCompletionSynchronization$1.call(OnCompletionProcessor.java:178)
at
org.apache.camel.processor.OnCompletionProcessor$OnCompletionSynchronization$1.call(OnCompletionProcessor.java:176)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
--
This message was sent by Atlassian JIRA
(v6.2#6252)