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 2017/06/06 02:04:26 UTC

[3/6] james-project git commit: JAMES-1900 In memory message search should unfold and decode headers

JAMES-1900 In memory message search should unfold and decode headers


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

Branch: refs/heads/master
Commit: beefb43bd3c71701d189e9c70b385394b1f4f680
Parents: bf5a68c
Author: benwa <bt...@linagora.com>
Authored: Fri May 5 10:39:39 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jun 5 20:24:51 2017 +0700

----------------------------------------------------------------------
 .../james/mailbox/store/search/MessageSearches.java    | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/beefb43b/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 140b34b..7bb255c 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
@@ -51,6 +51,8 @@ import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
 import org.apache.james.mailbox.store.search.comparator.CombinedComparator;
 import org.apache.james.mime4j.MimeException;
 import org.apache.james.mime4j.MimeIOException;
+import org.apache.james.mime4j.codec.DecodeMonitor;
+import org.apache.james.mime4j.codec.DecoderUtil;
 import org.apache.james.mime4j.dom.Message;
 import org.apache.james.mime4j.dom.address.Address;
 import org.apache.james.mime4j.dom.address.AddressList;
@@ -67,6 +69,7 @@ import org.apache.james.mime4j.message.DefaultMessageBuilder;
 import org.apache.james.mime4j.message.DefaultMessageWriter;
 import org.apache.james.mime4j.message.HeaderImpl;
 import org.apache.james.mime4j.stream.MimeConfig;
+import org.apache.james.mime4j.util.MimeUtil;
 import org.apache.james.mime4j.utils.search.MessageMatcher;
 
 import com.google.common.base.Function;
@@ -88,6 +91,12 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
         .setMaxLineLen(-1)
         .build();
 
+    private static String sanitizeHeaderField(String headerValue) {
+        return DecoderUtil.decodeEncodedWords(
+            MimeUtil.unfold(headerValue),
+            DecodeMonitor.SILENT);
+    }
+
     private Iterator<MailboxMessage> messages;
     private SearchQuery query;
     private MailboxSession session;
@@ -470,7 +479,7 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
         for (Header header : headers) {
             String name = header.getName();
             if (headerName.equalsIgnoreCase(name)) {
-                String value = header.getValue();
+                String value = sanitizeHeaderField(header.getValue());
                 if (value != null) {
                     if (value.toUpperCase(Locale.US).contains(text)) {
                         result = true;
@@ -520,7 +529,7 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
         for (Header header : headers) {
             String name = header.getName();
             if (headerName.equalsIgnoreCase(name)) {
-                value = header.getValue();
+                value = sanitizeHeaderField(header.getValue());
                 break;
             }
         }


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