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/03/30 01:21:51 UTC

[1/3] james-project git commit: JAMES-1981 Fix Eclipse warnings

Repository: james-project
Updated Branches:
  refs/heads/master 86871e52c -> 699e9ffd9


JAMES-1981 Fix Eclipse warnings


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

Branch: refs/heads/master
Commit: a3ba230c03c58def9521b5fa0e40b0288945c344
Parents: 86871e5
Author: Antoine Duprat <ad...@linagora.com>
Authored: Wed Mar 29 11:37:40 2017 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Wed Mar 29 11:37:40 2017 +0200

----------------------------------------------------------------------
 .../james/mailbox/inmemory/user/InMemorySubscriptionMapper.java     | 1 -
 .../org/apache/james/transport/mailets/RecipientToLowerCase.java    | 1 -
 2 files changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a3ba230c/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
index 741799c..7ec79d9 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
@@ -19,7 +19,6 @@
 package org.apache.james.mailbox.inmemory.user;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;

http://git-wip-us.apache.org/repos/asf/james-project/blob/a3ba230c/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java
index f7c72cc..52c3410 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java
@@ -30,7 +30,6 @@ import org.apache.mailet.base.GenericMailet;
 import com.google.common.base.Function;
 import com.google.common.base.Throwables;
 import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableList;
 
 /**
  * {@link GenericMailet} which convert all Recipients to lowercase


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


[3/3] james-project git commit: JAMES-1981 Don't fire event when no uid on expunge or flags update

Posted by bt...@apache.org.
JAMES-1981 Don't fire event when no uid on expunge or flags update


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

Branch: refs/heads/master
Commit: 699e9ffd921db84575b0fdedcf5fdb5dee06a8fd
Parents: ec191b4
Author: Antoine Duprat <ad...@linagora.com>
Authored: Wed Mar 29 14:23:36 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Thu Mar 30 08:21:04 2017 +0700

----------------------------------------------------------------------
 .../store/event/MailboxEventDispatcher.java     |  8 +++++--
 .../store/MailboxEventDispatcherTest.java       | 22 ++++++++++++++++++++
 2 files changed, 28 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/699e9ffd/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
index e6fb0d5..0d64ed9 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
@@ -89,7 +89,9 @@ public class MailboxEventDispatcher {
      * @param mailbox The mailbox
      */
     public void expunged(MailboxSession session,  Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
-        listener.event(eventFactory.expunged(session, uids, mailbox));
+        if (!uids.isEmpty()) {
+            listener.event(eventFactory.expunged(session, uids, mailbox));
+        }
     }
 
     public void expunged(MailboxSession session,  MessageMetaData messageMetaData, Mailbox mailbox) {
@@ -104,7 +106,9 @@ public class MailboxEventDispatcher {
      * registered MailboxListener will get triggered then
      */
     public void flagsUpdated(MailboxSession session, List<MessageUid> uids, Mailbox mailbox, List<UpdatedFlags> uflags) {
-        listener.event(eventFactory.flagsUpdated(session, uids, mailbox, uflags));
+        if (!uids.isEmpty()) {
+            listener.event(eventFactory.flagsUpdated(session, uids, mailbox, uflags));
+        }
     }
 
     public void flagsUpdated(MailboxSession session, MessageUid uid, Mailbox mailbox, UpdatedFlags uflags) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/699e9ffd/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
index 179d2f6..52d99be 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import javax.mail.Flags;
+import javax.mail.Flags.Flag;
 
 import org.apache.james.mailbox.FlagsBuilder;
 import org.apache.james.mailbox.MailboxListener;
@@ -32,6 +33,7 @@ import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.model.UpdatedFlags;
@@ -44,6 +46,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 
 public class MailboxEventDispatcherTest {
     private static final int sessionId = 10;
@@ -365,4 +368,23 @@ public class MailboxEventDispatcherTest {
         assertThat(event.getUpdatedFlags().get(0).systemFlagIterator())
             .containsOnly(Flags.Flag.SEEN, Flags.Flag.RECENT, Flags.Flag.ANSWERED);
     }
+
+    @Test
+    public void expungedShouldNotFireEventWhenEmptyMap() {
+        dispatcher.expunged(session, ImmutableMap.<MessageUid, MessageMetaData> of(), mailbox);
+        assertThat(collector.getEvents()).isEmpty();
+    }
+
+    @Test
+    public void flagsUpdatedShouldNotFireEventWhenEmptyIdList() {
+        UpdatedFlags updatedFlags = UpdatedFlags.builder()
+                .uid(MessageUid.of(1))
+                .modSeq(2)
+                .oldFlags(new Flags(Flag.RECENT))
+                .newFlags(new Flags(Flag.ANSWERED))
+                .build();
+        
+        dispatcher.flagsUpdated(session, ImmutableList.<MessageUid> of(), mailbox, ImmutableList.of(updatedFlags));
+        assertThat(collector.getEvents()).isEmpty();
+    }
 }


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


[2/3] james-project git commit: JAMES-1981 Don't fail when indexing fails

Posted by bt...@apache.org.
JAMES-1981 Don't fail when indexing fails


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

Branch: refs/heads/master
Commit: ec191b441dfe83c3409c0a4052fdf777422d0442
Parents: a3ba230
Author: Antoine Duprat <ad...@linagora.com>
Authored: Wed Mar 29 11:53:34 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Thu Mar 30 08:21:00 2017 +0700

----------------------------------------------------------------------
 .../james/backends/es/ElasticSearchIndexer.java | 48 ++++++++++++--------
 .../backends/es/ElasticSearchIndexerTest.java   | 11 ++++-
 ...icSearchListeningMessageSearchIndexTest.java |  5 +-
 3 files changed, 43 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ec191b44/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java
index 55bf479..658484b 100644
--- a/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java
+++ b/backends-common/elasticsearch/src/main/java/org/apache/james/backends/es/ElasticSearchIndexer.java
@@ -20,6 +20,7 @@ package org.apache.james.backends.es;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 import javax.inject.Inject;
 
@@ -28,6 +29,7 @@ import org.elasticsearch.action.bulk.BulkResponse;
 import org.elasticsearch.action.index.IndexResponse;
 import org.elasticsearch.client.Client;
 import org.elasticsearch.common.Strings;
+import org.elasticsearch.common.ValidationException;
 import org.elasticsearch.index.query.QueryBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -103,26 +105,36 @@ public class ElasticSearchIndexer {
             .get();
     }
 
-    public BulkResponse updateMessages(List<UpdatedRepresentation> updatedDocumentParts) {
-        Preconditions.checkNotNull(updatedDocumentParts);
-        BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
-        updatedDocumentParts.forEach(updatedDocumentPart -> bulkRequestBuilder.add(
-            client.prepareUpdate(
-                indexName.getValue(),
-                typeName.getValue(),
-                updatedDocumentPart.getId())
-            .setDoc(updatedDocumentPart.getUpdatedDocumentPart())));
-        return bulkRequestBuilder.get();
+    public Optional<BulkResponse> updateMessages(List<UpdatedRepresentation> updatedDocumentParts) {
+        try {
+            Preconditions.checkNotNull(updatedDocumentParts);
+            BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
+            updatedDocumentParts.forEach(updatedDocumentPart -> bulkRequestBuilder.add(
+                client.prepareUpdate(
+                    indexName.getValue(),
+                    typeName.getValue(),
+                    updatedDocumentPart.getId())
+                .setDoc(updatedDocumentPart.getUpdatedDocumentPart())));
+            return Optional.of(bulkRequestBuilder.get());
+        } catch (ValidationException e) {
+            LOGGER.warn("Error while updating index", e);
+            return Optional.empty();
+        }
     }
 
-    public BulkResponse deleteMessages(List<String> ids) {
-        BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
-        ids.forEach(id -> bulkRequestBuilder.add(
-            client.prepareDelete(
-                indexName.getValue(),
-                typeName.getValue(),
-                id)));
-        return bulkRequestBuilder.get();
+    public Optional<BulkResponse> deleteMessages(List<String> ids) {
+        try {
+            BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
+            ids.forEach(id -> bulkRequestBuilder.add(
+                client.prepareDelete(
+                    indexName.getValue(),
+                    typeName.getValue(),
+                    id)));
+            return Optional.of(bulkRequestBuilder.get());
+        } catch (ValidationException e) {
+            LOGGER.warn("Error while deleting index", e);
+            return Optional.empty();
+        }
     }
     
     public void deleteAllMatchingQuery(QueryBuilder queryBuilder) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/ec191b44/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java
----------------------------------------------------------------------
diff --git a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java
index ec9582e..6855622 100644
--- a/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java
+++ b/backends-common/elasticsearch/src/test/java/org/apache/james/backends/es/ElasticSearchIndexerTest.java
@@ -239,5 +239,14 @@ public class ElasticSearchIndexerTest {
             assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(1);
         }
     }
-
+    
+    @Test
+    public void updateMessagesShouldNotThrowWhenEmptyList() throws Exception {
+        testee.updateMessages(Lists.newArrayList());
+    }
+    
+    @Test
+    public void deleteMessagesShouldNotThrowWhenEmptyList() throws Exception {
+        testee.deleteMessages(Lists.newArrayList());
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ec191b44/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
index 28323b2..91611bd 100644
--- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
+++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Optional;
 
 import javax.mail.Flags;
 
@@ -169,7 +170,7 @@ public class ElasticSearchListeningMessageSearchIndexTest {
 
         BulkResponse expectedBulkResponse = mock(BulkResponse.class);
         when(indexer.deleteMessages(any(List.class)))
-            .thenReturn(expectedBulkResponse);
+            .thenReturn(Optional.of(expectedBulkResponse));
 
         //When
         testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID));
@@ -192,7 +193,7 @@ public class ElasticSearchListeningMessageSearchIndexTest {
 
         BulkResponse expectedBulkResponse = mock(BulkResponse.class);
         when(indexer.deleteMessages(any(List.class)))
-            .thenReturn(expectedBulkResponse);
+            .thenReturn(Optional.of(expectedBulkResponse));
         
         //When
         testee.delete(session, mailbox, Lists.newArrayList(MESSAGE_UID, messageId2, messageId3, messageId4, messageId5));


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