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 ro...@apache.org on 2017/01/04 08:55:33 UTC

james-project git commit: JAMES-1900: Headers in ES should be decoded

Repository: james-project
Updated Branches:
  refs/heads/master e6e347cf7 -> 0a11a4410


JAMES-1900: Headers in ES should be decoded


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

Branch: refs/heads/master
Commit: 0a11a4410e3a5e1434eb7a2bdcece3aebd04ccf9
Parents: e6e347c
Author: Quynh Nguyen <qn...@linagora.com>
Authored: Fri Dec 30 09:24:25 2016 +0700
Committer: Quynh Nguyen <qn...@linagora.com>
Committed: Wed Jan 4 10:01:27 2017 +0700

----------------------------------------------------------------------
 .../mailbox/elasticsearch/json/HeaderCollection.java      |  4 +++-
 .../mailbox/elasticsearch/json/HeaderCollectionTest.java  | 10 +++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/0a11a441/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
index fff42f7..709c964 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
@@ -26,6 +26,8 @@ import com.google.common.collect.ImmutableMultimap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Multimap;
 import org.apache.james.mailbox.store.search.SearchUtil;
+import org.apache.james.mime4j.codec.DecodeMonitor;
+import org.apache.james.mime4j.codec.DecoderUtil;
 import org.apache.james.mime4j.dom.address.Address;
 import org.apache.james.mime4j.dom.address.Group;
 import org.apache.james.mime4j.dom.address.Mailbox;
@@ -81,7 +83,7 @@ public class HeaderCollection {
             Preconditions.checkNotNull(field);
             String headerName = field.getName().toLowerCase();
             String headerValue = field.getBody();
-            headers.put(headerName, headerValue);
+            headers.put(headerName, DecoderUtil.decodeEncodedWords(headerValue, DecodeMonitor.SILENT));
             handleSpecificHeader(headerName, headerValue);
             return this;
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/0a11a441/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
index 64bbb97..dbea3c5 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
@@ -62,7 +62,15 @@ public class HeaderCollectionTest {
     }
 
     @Test
-    public void addressWithTwoDisplayNamesOnTheSameFieldShouldBeRetreived() {
+    public void displayNamesShouldBeRetrievedWhenEncodedWord() {
+        HeaderCollection headerCollection = HeaderCollection.builder().add(new FieldImpl("From", "=?UTF-8?B?RnLDqWTDqXJpYyBNQVJUSU4=?= <fm...@linagora.com>, Graham CROSMARIE <gc...@linagora.com>")).build();
+        assertThat(headerCollection.getFromAddressSet())
+            .extracting(EMailer::getName)
+            .contains("Fr�d�ric MARTIN");
+    }
+
+    @Test
+    public void addressWithTwoDisplayNamesOnTheSameFieldShouldBeRetrieved() {
         HeaderCollection headerCollection = HeaderCollection.builder().add(new FieldImpl("From", "Christophe Hamerling <ch...@linagora.com>, Graham CROSMARIE <gc...@linagora.com>")).build();
         assertThat(headerCollection.getFromAddressSet())
             .containsOnly(new EMailer("Christophe Hamerling", "chamerling@linagora.com"),


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