Author: norman
Date: Sat Feb 27 15:38:04 2010
New Revision: 916971
URL: http://svn.apache.org/viewvc?rev=916971&view=rev
Log:
Store the "original" name of the mail in the MailMessage so we can lookup it
later to remove the mail from the spool if needed. This is needed because some
mailets (like RemoteManager) change the name of the mail and so it will never
remove the mail from the spool (because of using the "wrong name"). Thx to
Manuel for spotting this!
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/MailMessage.java
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/MailMessage.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/MailMessage.java?rev=916971&r1=916970&r2=916971&view=diff
==============================================================================
---
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/MailMessage.java
(original)
+++
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/MailMessage.java
Sat Feb 27 15:38:04 2010
@@ -28,7 +28,7 @@
*/
public class MailMessage extends DefaultMessage{
public final static String STATE = "mailstate";
-
+ public final static String KEY ="key";
private Mail mail;
/**
@@ -38,6 +38,7 @@
*/
public MailMessage(Mail mail) {
this.mail = mail;
+ setHeader(KEY, mail.getName());
}
Modified:
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java?rev=916971&r1=916970&r2=916971&view=diff
==============================================================================
---
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java
(original)
+++
james/server/trunk/spoolmanager/src/main/java/org/apache/james/transport/camel/SpoolProducer.java
Sat Feb 27 15:38:04 2010
@@ -50,13 +50,14 @@
*/
public void process(Exchange exchange) throws Exception {
Mail mail = (Mail) exchange.getIn().getBody();
-
+
// Only remove an email from the spool is processing is
// complete, or if it has no recipients
- if ((Mail.GHOST.equals(mail.getState())) || (mail.getRecipients() ==
null) || (mail.getRecipients().size() == 0)) {
- spool.remove(mail.getName());
+ if (Mail.GHOST.equals(mail.getState()) || mail.getRecipients() == null
|| mail.getRecipients().size() == 0) {
+ String key = (String)exchange.getIn().getHeader(MailMessage.KEY);
+ spool.remove(key);
if (log.isDebugEnabled()) {
- StringBuffer debugBuffer = new StringBuffer(64).append("====
Removed from spool mail ").append(mail.getName()).append("====");
+ StringBuffer debugBuffer = new StringBuffer(64).append("====
Removed from spool mail ").append(key).append("====");
log.debug(debugBuffer.toString());
}
// Dispose mail
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]