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/03/29 09:46:23 UTC

[07/18] james-project git commit: JAMES-2363 LogMessage should not fail on text / empty messages

JAMES-2363 LogMessage should not fail on text / empty messages


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

Branch: refs/heads/master
Commit: 02f126a6da9e13174e4fcc78314480c82e2330f0
Parents: bb6d6d0
Author: benwa <bt...@linagora.com>
Authored: Tue Mar 27 16:05:42 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Mar 29 16:43:04 2018 +0700

----------------------------------------------------------------------
 .../james/transport/mailets/LogMessage.java     | 12 ++++++++--
 .../james/transport/mailets/LogMessageTest.java | 25 +++++++-------------
 2 files changed, 18 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/02f126a6/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
index 1ae9eb5..0707359 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
@@ -117,12 +117,20 @@ public class LogMessage extends GenericMailet {
 
     private void logBody(MimeMessage message) throws MessagingException, IOException {
         if (body && logger.isInfoEnabled()) {
-            InputStream inputStream = ByteStreams.limit(message.getRawInputStream(), lengthToLog(message));
+            InputStream inputStream = ByteStreams.limit(message.getDataHandler().getInputStream(), lengthToLog(message));
             logger.info(IOUtils.toString(inputStream, StandardCharsets.UTF_8));
         }
     }
 
     private int lengthToLog(MimeMessage message) throws MessagingException {
-        return bodyMax > 0 ? bodyMax : message.getSize();
+        return bodyMax > 0 ? bodyMax : messageSizeOrUnlimited(message);
+    }
+
+    private int messageSizeOrUnlimited(MimeMessage message) throws MessagingException {
+        int computedSize = message.getSize();
+        if (computedSize > 0) {
+            return computedSize;
+        }
+        return Integer.MAX_VALUE;
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/02f126a6/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
index 033231e..963d3e3 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
@@ -21,17 +21,14 @@ package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.builder.MimeMessageBuilder;
@@ -77,27 +74,21 @@ class LogMessageTest {
     }
 
     @Test
-    void serviceShouldFailWhenMailHasNoStream() throws Exception {
+    public void serviceShouldNotFailWhenTextContent() throws Exception {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("LogContext")
                 .mailetContext(mailContext)
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.addHeader("Date", "Tue, 16 Jan 2018 10:23:03 +0100");
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-
         mailet.service(FakeMail.builder()
-                .mimeMessage(message)
-                .build());
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("Date", "Tue, 16 Jan 2018 10:23:03 +0100")
+                .setSubject("subject")
+                .setText("This is a fake mail"))
+            .build());
 
-        verify(logger).info("Logging mail {}", (Object) null);
-        verify(logger, times(2)).isInfoEnabled();
-        verify(logger).info("\n");
-        verify(logger).info("Subject: subject\n");
-        verify(logger).error(eq("Error logging message."), any(MessagingException.class));
+        verify(logger, times(0)).error(anyString(), any(MessagingException.class));
     }
 
     @Test


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