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 <btell...@linagora.com> Authored: Tue Mar 13 16:45:31 2018 +0700 Committer: benwa <btell...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org