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)

Reply via email to