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