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 bt...@apache.org on 2018/06/27 02:30:09 UTC

james-project git commit: JAMES-2440 Don't fail when the filename is unparsable

Repository: james-project
Updated Branches:
  refs/heads/master b10fa18aa -> c9f8c9c72


JAMES-2440 Don't fail when the filename is unparsable


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c9f8c9c7
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c9f8c9c7
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c9f8c9c7

Branch: refs/heads/master
Commit: c9f8c9c72c212dd9332e5cf4f80974c805de6d7d
Parents: b10fa18
Author: Antoine Duprat <ad...@linagora.com>
Authored: Tue Jun 26 15:30:54 2018 +0200
Committer: benwa <bt...@linagora.com>
Committed: Wed Jun 27 09:28:24 2018 +0700

----------------------------------------------------------------------
 .../james/transport/mailets/StripAttachment.java    | 16 ++++++++++++----
 .../transport/mailets/StripAttachmentTest.java      | 13 +++++++++++++
 2 files changed, 25 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c9f8c9c7/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
index 2a82413..c77f935 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
@@ -365,11 +365,19 @@ public class StripAttachment extends GenericMailet {
         }
     }
 
-    private String getFilename(BodyPart bodyPart) throws UnsupportedEncodingException, MessagingException {
-        String fileName = bodyPart.getFileName();
-        if (fileName != null) {
-            return renameWithConfigurationPattern(decodeFilename(fileName));
+    @VisibleForTesting String getFilename(BodyPart bodyPart) {
+        try {
+            String fileName = bodyPart.getFileName();
+            if (fileName != null) {
+                return renameWithConfigurationPattern(decodeFilename(fileName));
+            }
+        } catch (Exception e) {
+            LOGGER.warn("Unparsable filename, using a random filename instead.", e);
         }
+        return randomFilename();
+    }
+
+    private String randomFilename() {
         return UUID.randomUUID().toString();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/c9f8c9c7/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
index 202b15a..aefc067 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
@@ -33,6 +33,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 
+import javax.mail.BodyPart;
 import javax.mail.MessagingException;
 import javax.mail.Part;
 import javax.mail.internet.MimeBodyPart;
@@ -920,4 +921,16 @@ class StripAttachmentTest {
         String prefix = OutputFileName.prependedPrefix(expectedPrefix);
         assertThat(prefix).isEqualTo(expectedPrefix);
     }
+
+    @Test
+    void getFilenameShouldReturnRandomFilenameWhenExceptionOccured() throws Exception {
+        BodyPart bodyPart = mock(BodyPart.class);
+        when(bodyPart.getFileName())
+            .thenThrow(new MessagingException());
+
+        StripAttachment mailet = new StripAttachment();
+        String filename = mailet.getFilename(bodyPart);
+
+        assertThat(filename).isNotNull();
+    }
 }


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