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]

Reply via email to