This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit c4457840ad9eed8fe3f43b9a52e28da388ad00b1
Author: Tran Tien Duc <[email protected]>
AuthorDate: Thu Jan 30 13:27:21 2020 +0700

    JAMES-3016 Converter7Bit tail recursive optimization
---
 .../main/java/org/apache/mailet/base/Converter7Bit.java   | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git 
a/mailet/base/src/main/java/org/apache/mailet/base/Converter7Bit.java 
b/mailet/base/src/main/java/org/apache/mailet/base/Converter7Bit.java
index 095608f..12de427 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/Converter7Bit.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/Converter7Bit.java
@@ -20,9 +20,7 @@
 package org.apache.mailet.base;
 
 import java.io.IOException;
-import java.util.List;
 
-import javax.mail.BodyPart;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
@@ -31,6 +29,8 @@ import javax.mail.internet.MimePart;
 import org.apache.james.javax.MultipartUtil;
 import org.apache.mailet.MailetContext;
 
+import com.github.fge.lambdas.Throwing;
+
 public class Converter7Bit {
 
     private final MailetContext mailetContext;
@@ -45,12 +45,7 @@ public class Converter7Bit {
     }
 
     private void convertPart(MimePart part) throws MessagingException, 
IOException {
-        if (part.isMimeType("multipart/*")) {
-            List<BodyPart> bodyParts = 
MultipartUtil.retrieveBodyParts((MimeMultipart) part.getContent());
-            for (BodyPart bodyPart : bodyParts) {
-                convertPart((MimePart) bodyPart);
-            }
-        } else if ("8bit".equals(part.getEncoding())) {
+        if ("8bit".equals(part.getEncoding())) {
             // The content may already be in encoded the form (likely with mail
             // created from a
             // stream). In that case, just changing the encoding to
@@ -67,7 +62,9 @@ public class Converter7Bit {
             part.setHeader("Content-Transfer-Encoding", 
contentTransferEncoding);
             part.addHeader("X-MIME-Autoconverted", "from 8bit to "
                 + contentTransferEncoding + " by " + 
mailetContext.getServerInfo());
+        } else if (part.isMimeType("multipart/*")) {
+            MultipartUtil.retrieveBodyParts((MimeMultipart) part.getContent())
+                .forEach(Throwing.consumer(bodyPart -> convertPart((MimePart) 
bodyPart)));
         }
     }
-
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to