MAILET-122 Error was generated as RRT tried to modify immutable List
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/aa5c8383 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/aa5c8383 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/aa5c8383 Branch: refs/heads/master Commit: aa5c83833ca7ae74a46d67e2a722cfc7a647572b Parents: 35c2d4b Author: Benoit Tellier <[email protected]> Authored: Fri Oct 7 17:39:51 2016 +0200 Committer: Benoit Tellier <[email protected]> Committed: Mon Oct 10 11:36:00 2016 +0200 ---------------------------------------------------------------------- .../AbstractRecipientRewriteTableMailet.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/aa5c8383/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTableMailet.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTableMailet.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTableMailet.java index b673989..ab89250 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTableMailet.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTableMailet.java @@ -31,8 +31,8 @@ import javax.mail.internet.MimeMessage; import org.apache.james.domainlist.api.DomainList; import org.apache.james.domainlist.api.DomainListException; -import org.apache.james.rrt.lib.Mapping; -import org.apache.james.rrt.lib.Mappings; +import org.apache.james.rrt.lib.Mapping; +import org.apache.james.rrt.lib.Mappings; import org.apache.mailet.Mail; import org.apache.mailet.MailAddress; import org.apache.mailet.MailetContext.LogLevel; @@ -56,7 +56,7 @@ public abstract class AbstractRecipientRewriteTableMailet extends GenericMailet * @see org.apache.mailet.base.GenericMailet#service(org.apache.mailet.Mail) */ public void service(Mail mail) throws MessagingException { - Collection<MailAddress> recipients = mail.getRecipients(); + Collection<MailAddress> recipients = new ArrayList<MailAddress>(mail.getRecipients()); Collection<MailAddress> errors = new Vector<MailAddress>(); MimeMessage message = mail.getMessage(); @@ -104,7 +104,7 @@ public abstract class AbstractRecipientRewriteTableMailet extends GenericMailet // In the future we may wish to address this. getMailetContext().sendMail(mail.getSender(), errors, message, Mail.ERROR); } - + mail.setRecipients(recipients); if (recipients.size() == 0) { // We always consume this message mail.setState(Mail.GHOST); @@ -126,23 +126,23 @@ public abstract class AbstractRecipientRewriteTableMailet extends GenericMailet * * @throws MessagingException */ - protected Collection<MailAddress> handleMappings(Mappings mappings, MailAddress sender, MailAddress recipient, MimeMessage message) throws MessagingException { - Iterator<Mapping> i = mappings.iterator(); + protected Collection<MailAddress> handleMappings(Mappings mappings, MailAddress sender, MailAddress recipient, MimeMessage message) throws MessagingException { + Iterator<Mapping> i = mappings.iterator(); Collection<MailAddress> remoteRecipients = new ArrayList<MailAddress>(); Collection<MailAddress> localRecipients = new ArrayList<MailAddress>(); while (i.hasNext()) { - Mapping rcpt = i.next(); + Mapping rcpt = i.next(); - if (!rcpt.hasDomain()) { + if (!rcpt.hasDomain()) { // the mapping contains no domain name, use the default domain try { - rcpt = rcpt.appendDomain(domainList.getDefaultDomain()); + rcpt = rcpt.appendDomain(domainList.getDefaultDomain()); } catch (DomainListException e) { throw new MessagingException("Unable to access DomainList", e); } } - MailAddress nextMap = new MailAddress(rcpt.asString()); + MailAddress nextMap = new MailAddress(rcpt.asString()); if (getMailetContext().isLocalServer(nextMap.getDomain())) { localRecipients.add(nextMap); } else { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
