Author: eric
Date: Thu Jan 3 15:09:20 2013
New Revision: 1428392
URL: http://svn.apache.org/viewvc?rev=1428392&view=rev
Log:
Fix issues in FileMailQueue, patch contributed by Eike Kettner (JAMES-1463)
Modified:
james/server/trunk/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
Modified:
james/server/trunk/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java?rev=1428392&r1=1428391&r2=1428392&view=diff
==============================================================================
---
james/server/trunk/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
(original)
+++
james/server/trunk/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
Thu Jan 3 15:09:20 2013
@@ -41,13 +41,13 @@ import java.util.concurrent.atomic.Atomi
import javax.mail.MessagingException;
import javax.mail.util.SharedFileInputStream;
+import org.slf4j.Logger;
import org.apache.james.core.MimeMessageCopyOnWriteProxy;
import org.apache.james.core.MimeMessageSource;
import org.apache.james.lifecycle.api.Disposable;
import org.apache.james.lifecycle.api.LifecycleUtil;
import org.apache.james.queue.api.ManageableMailQueue;
import org.apache.mailet.Mail;
-import org.slf4j.Logger;
/**
* {@link ManageableMailQueue} implementation which use the fs to store {@link
Mail}'s
@@ -171,7 +171,9 @@ public class FileMailQueue implements Ma
String name = queueDirName + "/" + i + "/" + key;
final FileItem item = new FileItem(name + OBJECT_EXTENSION, name +
MSG_EXTENSION);
-
+ if (delay > 0) {
+ mail.setAttribute(NEXT_DELIVERY, System.currentTimeMillis() +
unit.toMillis(delay));
+ }
foout = new FileOutputStream(item.getObjectFile());
oout = new ObjectOutputStream(foout);
oout.writeObject(mail);
@@ -186,8 +188,7 @@ public class FileMailQueue implements Ma
keyMappings.put(key, item);
if (delay > 0) {
- mail.setAttribute(NEXT_DELIVERY, System.currentTimeMillis() +
unit.toMillis(delay));
- // The message should get delayed so schedule it for later
+ // The message should get delayed so schedule it for later
scheduler.schedule(new Runnable() {
@Override
@@ -286,6 +287,7 @@ public class FileMailQueue implements Ma
}
} else {
fitem.delete();
+ keyMappings.remove(key);
}
LifecycleUtil.dispose(mail);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]