You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Laabidi Raissi (JIRA)" <ji...@apache.org> on 2014/08/22 18:42:12 UTC
[jira] [Created] (CAMEL-7739) camel-mail poller onCompletion Folder
is not Open
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)