Author: davsclaus
Date: Wed Apr 27 21:08:03 2011
New Revision: 1097241

URL: http://svn.apache.org/viewvc?rev=1097241&view=rev
Log:
CAMEL-3908: Ensure folder is open when setting flag on processed mail message 
in on completion. Thanks to Donald for the patch.

Modified:
    
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java

Modified: 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java?rev=1097241&r1=1097240&r2=1097241&view=diff
==============================================================================
--- 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
 (original)
+++ 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java
 Wed Apr 27 21:08:03 2011
@@ -44,7 +44,7 @@ import org.springframework.mail.javamail
  * A {@link org.apache.camel.Consumer Consumer} which consumes messages from 
JavaMail using a
  * {@link javax.mail.Transport Transport} and dispatches them to the {@link 
Processor}
  *
- * @version 
+ * @version
  */
 public class MailConsumer extends ScheduledPollConsumer implements 
BatchConsumer, ShutdownAware {
     public static final long DEFAULT_CONSUMER_DELAY = 60 * 1000L;
@@ -93,7 +93,7 @@ public class MailConsumer extends Schedu
         }
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("Polling mailfolder: " + 
getEndpoint().getConfiguration().getMailStoreLogInformation());
+            LOG.debug("Polling mailbox folder: " + 
getEndpoint().getConfiguration().getMailStoreLogInformation());
         }
 
         if (getEndpoint().getConfiguration().getFetchSize() == 0) {
@@ -266,11 +266,15 @@ public class MailConsumer extends Schedu
     /**
      * Strategy to flag the message after being processed.
      *
-     * @param mail the mail message
+     * @param mail     the mail message
      * @param exchange the exchange
      */
     protected void processCommit(Message mail, Exchange exchange) {
         try {
+            // ensure folder is open
+            if (!folder.isOpen()) {
+                folder.open(Folder.READ_WRITE);
+            }
             if (getEndpoint().getConfiguration().isDelete()) {
                 LOG.debug("Exchange processed, so flagging message as 
DELETED");
                 mail.setFlag(Flags.Flag.DELETED, true);
@@ -287,7 +291,7 @@ public class MailConsumer extends Schedu
     /**
      * Strategy when processing the exchange failed.
      *
-     * @param mail the mail message
+     * @param mail     the mail message
      * @param exchange the exchange
      */
     protected void processRollback(Message mail, Exchange exchange) {


Reply via email to