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/14 08:16:48 UTC

[2/2] james-project git commit: JAMES-2346 Rely on new MIME4J MimeConfig.PERMISSIVE constant

JAMES-2346 Rely on new MIME4J MimeConfig.PERMISSIVE constant


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

Branch: refs/heads/master
Commit: 3bfb7093f76c3aafef6e2e7c50db08dc5469177c
Parents: 43d7324
Author: benwa <bt...@linagora.com>
Authored: Tue Mar 13 16:45:31 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Mar 14 15:16:10 2018 +0700

----------------------------------------------------------------------
 .../mailbox/elasticsearch/json/MimePartParser.java      | 10 +---------
 .../mailbox/lucene/search/LuceneMessageSearchIndex.java |  6 +-----
 .../mailbox/maildir/mail/model/MaildirMessage.java      |  3 +--
 .../apache/james/mailbox/store/MimeDescriptorImpl.java  | 12 ++----------
 .../org/apache/james/mailbox/store/ResultUtils.java     |  3 +--
 .../apache/james/mailbox/store/StoreMessageManager.java | 11 +----------
 .../mailbox/store/mail/model/impl/MessageParser.java    |  8 +-------
 .../james/mailbox/store/search/MessageSearches.java     | 10 +---------
 .../mailbox/store/streaming/PartContentBuilder.java     | 10 +---------
 .../mailet/base/AutomaticallySentMailDetectorImpl.java  |  9 +--------
 pom.xml                                                 |  2 +-
 .../org/apache/james/jmap/methods/SendMDNProcessor.java |  8 +-------
 .../org/apache/james/jmap/model/MessageFactory.java     | 10 +---------
 13 files changed, 14 insertions(+), 88 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MimePartParser.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MimePartParser.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MimePartParser.java
index 48d8053..9582661 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MimePartParser.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MimePartParser.java
@@ -36,14 +36,6 @@ import com.google.common.base.Preconditions;
 
 public class MimePartParser {
 
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxLineLen(-1)
-        .build();
-
     private final Message message;
     private final TextExtractor textExtractor;
     private final MimeTokenStream stream;
@@ -57,7 +49,7 @@ public class MimePartParser {
         this.builderStack = new LinkedList<>();
         this.currentlyBuildMimePart = new RootMimePartContainerBuilder();
         this.stream = new MimeTokenStream(
-            MIME_ENTITY_CONFIG,
+            MimeConfig.PERMISSIVE,
             new DefaultBodyDescriptorBuilder());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
index 64ded42..ed7df14 100644
--- a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
+++ b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
@@ -732,12 +732,8 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
             }
  
         };
-        MimeConfig config = MimeConfig.custom()
-                .setMaxLineLen(-1)
-                .setMaxContentLen(-1)
-                .build();
         //config.setStrictParsing(false);
-        MimeStreamParser parser = new MimeStreamParser(config);
+        MimeStreamParser parser = new MimeStreamParser(MimeConfig.PERMISSIVE);
         parser.setContentDecoding(true);
         parser.setContentHandler(handler);
        

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
index a84f3cb..1f42c9c 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
@@ -74,8 +74,7 @@ public class MaildirMessage implements Message {
             // Disable line length... This should be handled by the smtp server
             // component and not the parser itself
             // https://issues.apache.org/jira/browse/IMAP-122
-            MimeConfig config = MimeConfig.custom().setMaxLineLen(-1).build();
-            final MimeTokenStream parser = new MimeTokenStream(config, new DefaultBodyDescriptorBuilder());
+            final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder());
             parser.setRecursionMode(RecursionMode.M_NO_RECURSE);
             parser.parse(tmpMsgIn.newStream(0, -1));
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
index a81b135..7c643c0 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
@@ -45,15 +45,7 @@ import org.apache.james.mime4j.stream.RecursionMode;
 public class MimeDescriptorImpl implements MimeDescriptor {
 
     private static final Charset US_ASCII = Charset.forName("US-ASCII");
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxLineLen(-1)
-        .build();
-
-    
+
     /**
      * Is this a composite media type (as per RFC2045)?
      * 
@@ -70,7 +62,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
         // Disable line length limit
         // See https://issues.apache.org/jira/browse/IMAP-132
         //
-        final MimeTokenStream parser = new MimeTokenStream(MIME_ENTITY_CONFIG, new DefaultBodyDescriptorBuilder());
+        final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder());
         
         parser.parse(stream);
         

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
index 1bfa6da..4417e9e 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
@@ -55,8 +55,7 @@ public class ResultUtils {
 
     public static List<MessageResult.Header> createHeaders(MailboxMessage document) throws IOException {
         final List<MessageResult.Header> results = new ArrayList<>();
-        MimeConfig config = MimeConfig.custom().setMaxLineLen(-1).setMaxHeaderLen(-1).build();
-        final MimeStreamParser parser = new MimeStreamParser(config);
+        final MimeStreamParser parser = new MimeStreamParser(MimeConfig.PERMISSIVE);
         parser.setContentHandler(new AbstractContentHandler() {
             @Override
             public void endHeader() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index c095100..b0fbc18 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -103,14 +103,6 @@ import com.google.common.collect.ImmutableMap;
  */
 public class StoreMessageManager implements org.apache.james.mailbox.MessageManager {
 
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxLineLen(-1)
-        .build();
-
     private static final MailboxCounters ZERO_MAILBOX_COUNTERS = MailboxCounters.builder()
         .count(0)
         .unseen(0)
@@ -309,9 +301,8 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
             // Disable line length... This should be handled by the smtp server
             // component and not the parser itself
             // https://issues.apache.org/jira/browse/IMAP-122
-            MimeConfig config = MIME_ENTITY_CONFIG;
 
-            final MimeTokenStream parser = new MimeTokenStream(config, new DefaultBodyDescriptorBuilder());
+            final MimeTokenStream parser = new MimeTokenStream(MimeConfig.PERMISSIVE, new DefaultBodyDescriptorBuilder());
 
             parser.setRecursionMode(RecursionMode.M_NO_RECURSE);
             parser.parse(bIn);

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
index ed09191..fa8744f 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
@@ -53,12 +53,6 @@ import com.google.common.collect.ImmutableList;
 
 public class MessageParser {
 
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxLineLen(-1)
-        .build();
     private static final String TEXT_MEDIA_TYPE = "text";
     private static final String CONTENT_TYPE = "Content-Type";
     private static final String CONTENT_ID = "Content-ID";
@@ -82,7 +76,7 @@ public class MessageParser {
 
     public List<MessageAttachment> retrieveAttachments(InputStream fullContent) throws MimeException, IOException {
         DefaultMessageBuilder defaultMessageBuilder = new DefaultMessageBuilder();
-        defaultMessageBuilder.setMimeEntityConfig(MIME_ENTITY_CONFIG);
+        defaultMessageBuilder.setMimeEntityConfig(MimeConfig.PERMISSIVE);
         defaultMessageBuilder.setDecodeMonitor(DecodeMonitor.SILENT);
         Message message = defaultMessageBuilder.parseMessage(fullContent);
         Body body = message.getBody();

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
index 4ba541b..d1f1647 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
@@ -88,14 +88,6 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
 
     private static final Logger LOGGER = LoggerFactory.getLogger(MessageSearches.class);
 
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxLineLen(-1)
-        .build();
-
     private final Iterator<MailboxMessage> messages;
     private final SearchQuery query;
     private final TextExtractor textExtractor;
@@ -278,7 +270,7 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
 
     private HeaderImpl buildTextHeaders(MailboxMessage message) throws IOException, MimeIOException {
         DefaultMessageBuilder defaultMessageBuilder = new DefaultMessageBuilder();
-        defaultMessageBuilder.setMimeEntityConfig(MIME_ENTITY_CONFIG);
+        defaultMessageBuilder.setMimeEntityConfig(MimeConfig.PERMISSIVE);
         Message headersMessage = defaultMessageBuilder
             .parseMessage(message.getHeaderContent());
         HeaderImpl headerImpl = new HeaderImpl();

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
index 75b9484..7096e96 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
@@ -40,14 +40,6 @@ import org.apache.james.mime4j.stream.RecursionMode;
 
 public class PartContentBuilder {
 
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxLineLen(-1)
-        .build();
-
     private static final byte[] EMPTY = {};
 
     private final MimeTokenStream parser;
@@ -57,7 +49,7 @@ public class PartContentBuilder {
     private boolean topLevel = true;
 
     public PartContentBuilder() {
-        parser = new MimeTokenStream(MIME_ENTITY_CONFIG);
+        parser = new MimeTokenStream(MimeConfig.PERMISSIVE);
     }
 
     public void markEmpty() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
----------------------------------------------------------------------
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 1438eb2..02c2443 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
@@ -37,13 +37,6 @@ import org.apache.mailet.Mail;
 
 public class AutomaticallySentMailDetectorImpl implements AutomaticallySentMailDetector {
 
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxLineLen(-1)
-        .build();
-
     private static final String[] MAILING_LIST_HEADERS = new String[] {
             "List-Help",
             "List-Subscribe",
@@ -96,7 +89,7 @@ public class AutomaticallySentMailDetectorImpl implements AutomaticallySentMailD
 
     public boolean isMdnSentAutomatically(Mail mail) throws MessagingException {
         ResultCollector resultCollector = new ResultCollector(false);
-        MimeStreamParser parser = new MimeStreamParser(MIME_ENTITY_CONFIG);
+        MimeStreamParser parser = new MimeStreamParser(MimeConfig.PERMISSIVE);
         parser.setContentHandler(createMdnContentHandler(resultCollector));
         try {
             parser.parse(mail.getMessage().getInputStream());

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 800c770..aaac3e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -580,7 +580,7 @@
         <deployTechnicalSiteDirectory />
 
         <activemq.version>5.15.2</activemq.version>
-        <apache-mime4j.version>0.8.1</apache-mime4j.version>
+        <apache-mime4j.version>0.8.2-SNAPSHOT</apache-mime4j.version>
         <camel.version>2.19.4</camel.version>
         <derby.version>10.9.1.0</derby.version>
         <hadoop.version>1.1.1</hadoop.version>

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java
index 6142ef0..27df92d 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SendMDNProcessor.java
@@ -64,12 +64,6 @@ import com.google.common.collect.ImmutableList;
 public class SendMDNProcessor implements SetMessagesProcessor {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(SendMDNProcessor.class);
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxLineLen(-1)
-        .build();
 
     private final MetricFactory metricFactory;
     private final SystemMailboxesProvider systemMailboxesProvider;
@@ -167,7 +161,7 @@ public class SendMDNProcessor implements SetMessagesProcessor {
         }
 
         DefaultMessageBuilder messageBuilder = new DefaultMessageBuilder();
-        messageBuilder.setMimeEntityConfig(MIME_ENTITY_CONFIG);
+        messageBuilder.setMimeEntityConfig(MimeConfig.PERMISSIVE);
         messageBuilder.setDecodeMonitor(DecodeMonitor.SILENT);
         return messageBuilder.parseMessage(messages.get(0).getHeaders().getInputStream());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bfb7093/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
index f70db5c..473d50f 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
@@ -64,14 +64,6 @@ public class MessageFactory {
 
     public static final String JMAP_MULTIVALUED_FIELD_DELIMITER = "\n";
 
-    private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
-        .setMaxContentLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxHeaderLen(-1)
-        .setMaxHeaderCount(-1)
-        .setMaxLineLen(-1)
-        .build();
-
     private final BlobManager blobManager;
     private final MessagePreviewGenerator messagePreview;
     private final MessageContentExtractor messageContentExtractor;
@@ -139,7 +131,7 @@ public class MessageFactory {
         try {
             return org.apache.james.mime4j.dom.Message.Builder
                     .of()
-                    .use(MIME_ENTITY_CONFIG)
+                    .use(MimeConfig.PERMISSIVE)
                     .parse(message.getContent())
                     .build();
         } catch (IOException e) {


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