[
https://issues.apache.org/jira/browse/CAMEL-7739?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-7739:
-------------------------------
Fix Version/s: 2.15.0
2.14.2
2.13.4
> 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
> Priority: Minor
> Labels: bug, onCompletion, pop3
> Fix For: 2.13.4, 2.14.2, 2.15.0
>
>
> 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.3.4#6332)