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) {