You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2020/04/30 07:28:43 UTC

[james-project] 07/11: MAILET-166 AutomaticSentMailDetectorImpl should not fail above 1MB

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

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

commit a3b3a20a821bdef80e64d3a2e17ad33106851dc8
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Apr 28 13:10:22 2020 +0700

    MAILET-166 AutomaticSentMailDetectorImpl should not fail above 1MB
---
 .../base/AutomaticallySentMailDetectorImpl.java       |  4 ++++
 .../base/AutomaticallySentMailDetectorImplTest.java   | 19 +++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java b/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
index 5f42cb6..6b39613 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
@@ -104,6 +104,10 @@ public class AutomaticallySentMailDetectorImpl implements AutomaticallySentMailD
         } catch (MimeException e) {
             throw new MessagingException("Can not parse Mime", e);
         } catch (IOException e) {
+            // there's no reason for a mdn report to be bigger than 1MiB
+            if (e.getMessage().startsWith("Input stream limit exceeded")) {
+                return false;
+            }
             throw new MessagingException("Can not read content", e);
         }
         return resultCollector.getResult();
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java b/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
index ad4e551..309ced8 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
@@ -332,4 +332,23 @@ public class AutomaticallySentMailDetectorImplTest {
         assertThat(new AutomaticallySentMailDetectorImpl().isMdnSentAutomatically(fakeMail)).isFalse();
     }
 
+    @Test
+    public void isMdnSentAutomaticallyShouldNotThrowWhenBiggerThan1MB() throws Exception {
+        MimeMessageBuilder message = MimeMessageBuilder.mimeMessageBuilder()
+            .addHeaders()
+            .setMultipartWithBodyParts(
+                MimeMessageBuilder.bodyPartBuilder()
+                    .data("12345678\r\n".repeat(150 * 1024)),
+                MimeMessageBuilder.bodyPartBuilder()
+                    .data("12345678\r\n"));
+
+        FakeMail fakeMail = FakeMail.builder()
+            .name("mail")
+            .sender(MailAddressFixture.ANY_AT_JAMES)
+            .mimeMessage(message)
+            .build();
+
+        assertThat(new AutomaticallySentMailDetectorImpl().isMdnSentAutomatically(fakeMail)).isFalse();
+    }
+
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org