[ 
https://issues.apache.org/activemq/browse/CAMEL-1263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Chen updated CAMEL-1263:
--------------------------------

    Description: 
When the mail box is empty (no mail available), MailConsumer throws the 
following exception on line 113.  It happens for both pop3 and imap protocols 
(Java Mail API 1.4.1 Sun implementation).  

Regardless the cause, closing the folder should be enclosed in a try/catch 
block and ignore any exception thrown, because it is no longer interesting to 
the client application.  It can surely log the exception, but shouldn't throw 
it.
{code}
     [java] javax.mail.MessagingException: A6 NO Mailbox is locked by POP 
server;
     [java]   nested exception is:
     [java]     com.sun.mail.iap.CommandFailedException: A6 NO Mailbox is 
locked by POP server
     [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1128)
     [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1055)
     [java]     at 
org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:113)
     [java]     at 
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:66)
     [java]     at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
     [java]     at 
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
     [java]     at 
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
     [java]     at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
     [java]     at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
     [java]     at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
     [java]     at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
     [java]     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
     [java]     at java.lang.Thread.run(Thread.java:619)
     [java] Caused by: com.sun.mail.iap.CommandFailedException: A6 NO Mailbox 
is locked by POP server
     [java]     at com.sun.mail.iap.Protocol.handleResult(Protocol.java:341)
     [java]     at com.sun.mail.iap.Protocol.simpleCommand(Protocol.java:363)
     [java]     at 
com.sun.mail.imap.protocol.IMAPProtocol.close(IMAPProtocol.java:976)
     [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1125)
     [java]     ... 12 more
{code}

  was:
When the mail box is empty (no mail available), MailConsumer throws the 
following exception on line 113.  It happens for both pop3 and imap protocols 
(Java Mail API 1.4.1 Sun implementation).  

Regardless the cause, closing the folder should be enclosed in a try/catch 
block and ignore any exception thrown, because it is no longer interesting to 
the client application.  It can surely log the exception, but shouldn't throw 
it.

     [java] javax.mail.MessagingException: A6 NO Mailbox is locked by POP 
server;
     [java]   nested exception is:
     [java]     com.sun.mail.iap.CommandFailedException: A6 NO Mailbox is 
locked by POP server
     [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1128)
     [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1055)
     [java]     at 
org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:113)
     [java]     at 
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:66)
     [java]     at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
     [java]     at 
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
     [java]     at 
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
     [java]     at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
     [java]     at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
     [java]     at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
     [java]     at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
     [java]     at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
     [java]     at java.lang.Thread.run(Thread.java:619)
     [java] Caused by: com.sun.mail.iap.CommandFailedException: A6 NO Mailbox 
is locked by POP server
     [java]     at com.sun.mail.iap.Protocol.handleResult(Protocol.java:341)
     [java]     at com.sun.mail.iap.Protocol.simpleCommand(Protocol.java:363)
     [java]     at 
com.sun.mail.imap.protocol.IMAPProtocol.close(IMAPProtocol.java:976)
     [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1125)
     [java]     ... 12 more



> MailConsumer throws exception on line 113
> -----------------------------------------
>
>                 Key: CAMEL-1263
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1263
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-mail
>    Affects Versions: 1.5.0
>         Environment: Camel
>            Reporter: Michael Chen
>
> When the mail box is empty (no mail available), MailConsumer throws the 
> following exception on line 113.  It happens for both pop3 and imap protocols 
> (Java Mail API 1.4.1 Sun implementation).  
> Regardless the cause, closing the folder should be enclosed in a try/catch 
> block and ignore any exception thrown, because it is no longer interesting to 
> the client application.  It can surely log the exception, but shouldn't throw 
> it.
> {code}
>      [java] javax.mail.MessagingException: A6 NO Mailbox is locked by POP 
> server;
>      [java]   nested exception is:
>      [java]     com.sun.mail.iap.CommandFailedException: A6 NO Mailbox is 
> locked by POP server
>      [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1128)
>      [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1055)
>      [java]     at 
> org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:113)
>      [java]     at 
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:66)
>      [java]     at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>      [java]     at 
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>      [java]     at 
> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>      [java]     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>      [java]     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>      [java]     at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>      [java]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>      [java]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>      [java]     at java.lang.Thread.run(Thread.java:619)
>      [java] Caused by: com.sun.mail.iap.CommandFailedException: A6 NO Mailbox 
> is locked by POP server
>      [java]     at com.sun.mail.iap.Protocol.handleResult(Protocol.java:341)
>      [java]     at com.sun.mail.iap.Protocol.simpleCommand(Protocol.java:363)
>      [java]     at 
> com.sun.mail.imap.protocol.IMAPProtocol.close(IMAPProtocol.java:976)
>      [java]     at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1125)
>      [java]     ... 12 more
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to