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 2019/09/27 11:50:02 UTC
[james-project] 01/18: JAMES-2241 can reindex header fields with
dots after upgrading to ES6
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 39afa483bd80723c63ca31d3f7ae63eaa322fc09
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Fri Sep 27 14:35:27 2019 +0700
JAMES-2241 can reindex header fields with dots after upgrading to ES6
---
.../mailbox/elasticsearch/json/HeaderCollection.java | 5 ++---
.../mailbox/elasticsearch/json/HeaderCollectionTest.java | 4 ++--
.../store/search/SimpleMessageSearchIndexTest.java | 5 +++++
.../store/search/AbstractMessageSearchIndexTest.java | 15 +++++++++++++++
4 files changed, 24 insertions(+), 5 deletions(-)
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 f007e69..6e98444 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
@@ -74,9 +74,8 @@ public class HeaderCollection {
String rawHeaderValue = field.getBody();
String sanitizedValue = MimeUtil.unscrambleHeaderValue(rawHeaderValue);
- if (!headerName.contains(".")) {
- headers.put(headerName, sanitizedValue);
- }
+ headers.put(headerName, sanitizedValue);
+
handleSpecificHeader(headerName, sanitizedValue, rawHeaderValue);
return this;
}
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 647bdf8..4252230 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
@@ -116,13 +116,13 @@ class HeaderCollectionTest {
}
@Test
- void getHeadersShouldIgnoreHeadersWithDots() {
+ void getHeadersShouldNotIgnoreHeadersWithDots() {
HeaderCollection headerCollection = HeaderCollection.builder()
.add(new FieldImpl("a.b.c", "value"))
.build();
assertThat(headerCollection.getHeaders().get("a.b.c"))
- .isEmpty();
+ .containsExactly("value");
}
@Test
diff --git a/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java b/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
index 48ffb16..e44dac6 100644
--- a/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
+++ b/mailbox/scanning-search/src/test/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndexTest.java
@@ -238,4 +238,9 @@ public class SimpleMessageSearchIndexTest extends AbstractMessageSearchIndexTest
@Override
public void searchWithTextShouldReturnMailsWhenHtmlBodyMatchesWithStemming() throws Exception {
}
+
+ @Ignore
+ @Override
+ public void headerWithDotsShouldBeIndexed() throws MailboxException {
+ }
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
index 460b4fc..4e78516 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
@@ -423,6 +423,21 @@ public abstract class AbstractMessageSearchIndexTest {
}
@Test
+ public void headerWithDotsShouldBeIndexed() throws MailboxException {
+
+ ComposedMessageId mailWithDotsInHeader = myFolderMessageManager.appendMessage(
+ MessageManager.AppendCommand.builder()
+ .build(ClassLoader.getSystemResourceAsStream("eml/headerWithDot.eml")),
+ session);
+ await();
+
+ SearchQuery searchQuery = new SearchQuery(SearchQuery.headerExists("X-header.with.dots"));
+
+ assertThat(messageSearchIndex.search(session, mailbox2, searchQuery))
+ .contains(mailWithDotsInHeader.getUid());
+ }
+
+ @Test
public void searchShouldBeExactOnEmailAddresses() throws MailboxException {
Assume.assumeTrue(storeMailboxManager.getSupportedSearchCapabilities().contains(MailboxManager.SearchCapabilities.Text));
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org