This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit d5efee57b5e86cc03637ebd8f17062ad580c48d8 Author: Rémi Kowalski <[email protected]> AuthorDate: Tue Mar 17 16:56:47 2020 +0100 JAMES-3120 don't save mail if no-op in RemoveMimeHeader mailet --- .../james/transport/mailets/RemoveMimeHeader.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java index 801e706..c0797da 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java @@ -20,7 +20,6 @@ package org.apache.james.transport.mailets; import java.util.List; -import java.util.stream.Collectors; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; @@ -63,21 +62,24 @@ public class RemoveMimeHeader extends GenericMailet { @Override public void service(Mail mail) throws MessagingException { - MimeMessage message = mail.getMessage(); - + MimeMessage message = mail.getMessage(); + + boolean hasHeadersToRemove = message.getMatchingHeaderLines(headers.toArray(new String[0])) + .hasMoreElements(); + for (String header : headers) { message.removeHeader(header); } - + removeSpecific(mail); - message.saveChanges(); + if (hasHeadersToRemove) { + message.saveChanges(); + } } protected void removeSpecific(Mail mail) { - mail.getPerRecipientSpecificHeaders().getRecipientsWithSpecificHeaders() - .stream() - .collect(Collectors.toList()) // Streaming for concurrent modifications + ImmutableList.copyOf(mail.getPerRecipientSpecificHeaders().getRecipientsWithSpecificHeaders()) // Copying to avoid concurrent modifications .forEach(recipient -> { mail.getPerRecipientSpecificHeaders() .getHeadersForRecipient(recipient) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
