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 <qngu...@linagora.com> Authored: Fri Dec 30 09:24:25 2016 +0700 Committer: Quynh Nguyen <qngu...@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=?= <fmar...@linagora.com>, Graham CROSMARIE <gcrosma...@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 <chamerl...@linagora.com>, Graham CROSMARIE <gcrosma...@linagora.com>")).build(); assertThat(headerCollection.getFromAddressSet()) .containsOnly(new EMailer("Christophe Hamerling", "chamerl...@linagora.com"), --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org