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/01/17 11:01:45 UTC
[6/8] james-project git commit: MAILBOX-372 MailboxAnnotationListener
should not catch exceptions
MAILBOX-372 MailboxAnnotationListener should not catch exceptions
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ce2036f0
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ce2036f0
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ce2036f0
Branch: refs/heads/master
Commit: ce2036f0373a3a0dc93b3374562d59a90bb2b20c
Parents: b7df724
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Jan 16 11:49:04 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Jan 17 18:01:13 2019 +0700
----------------------------------------------------------------------
.../store/event/MailboxAnnotationListener.java | 23 +++++---------------
.../event/MailboxAnnotationListenerTest.java | 8 +++----
2 files changed, 10 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/ce2036f0/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
index b026186..5c293cb 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxAnnotationListener.java
@@ -32,13 +32,10 @@ import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.SessionProvider;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class MailboxAnnotationListener implements MailboxListener.GroupMailboxListener {
private static final class MailboxAnnotationListenerGroup extends Group {}
- private static final Logger logger = LoggerFactory.getLogger(MailboxAnnotationListener.class);
private static final Group GROUP = new MailboxAnnotationListenerGroup();
private final MailboxSessionMapperFactory mailboxSessionMapperFactory;
@@ -56,28 +53,20 @@ public class MailboxAnnotationListener implements MailboxListener.GroupMailboxLi
}
@Override
- public void event(Event event) {
+ public void event(Event event) throws MailboxException {
if (event instanceof MailboxDeletion) {
- try {
- MailboxSession mailboxSession = sessionProvider.createSystemSession(event.getUser().asString());
- AnnotationMapper annotationMapper = mailboxSessionMapperFactory.getAnnotationMapper(mailboxSession);
- MailboxId mailboxId = ((MailboxDeletion) event).getMailboxId();
+ MailboxSession mailboxSession = sessionProvider.createSystemSession(event.getUser().asString());
+ AnnotationMapper annotationMapper = mailboxSessionMapperFactory.getAnnotationMapper(mailboxSession);
+ MailboxId mailboxId = ((MailboxDeletion) event).getMailboxId();
- deleteRelatedAnnotations(mailboxId, annotationMapper);
- } catch (MailboxException e) {
- logger.error("Unable to look up AnnotationMapper", e);
- }
+ deleteRelatedAnnotations(mailboxId, annotationMapper);
}
}
private void deleteRelatedAnnotations(MailboxId mailboxId, AnnotationMapper annotationMapper) {
List<MailboxAnnotation> annotations = annotationMapper.getAllAnnotations(mailboxId);
for (MailboxAnnotation annotation : annotations) {
- try {
- annotationMapper.deleteAnnotation(mailboxId, annotation.getKey());
- } catch (Exception e) {
- logger.error("Unable to delete annotation {} cause {}", annotation.getKey(), e.getMessage());
- }
+ annotationMapper.deleteAnnotation(mailboxId, annotation.getKey());
}
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/ce2036f0/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
index 394b008..ee68c71 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.mailbox.store.event;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doThrow;
@@ -94,7 +95,7 @@ public class MailboxAnnotationListenerTest {
}
@Test
- public void eventShouldDoNothingIfDoNotHaveMailboxDeletionEvent() {
+ public void eventShouldDoNothingIfDoNotHaveMailboxDeletionEvent() throws Exception {
MailboxListener.MailboxEvent event = new MailboxListener.MailboxAdded(null, null, MAILBOX_PATH, MAILBOX_ID, Event.EventId.random());
listener.event(event);
@@ -133,16 +134,15 @@ public class MailboxAnnotationListenerTest {
}
@Test
- public void eventShouldDeteleAllMailboxIfHasAnyOneFailed() throws Exception {
+ public void eventShouldPropagateFailure() throws Exception {
when(annotationMapper.getAllAnnotations((eq(mailboxId)))).thenReturn(ANNOTATIONS);
doThrow(new RuntimeException()).when(annotationMapper).deleteAnnotation(eq(mailboxId), eq(PRIVATE_KEY));
- listener.event(deleteEvent);
+ assertThatThrownBy(() -> listener.event(deleteEvent)).isInstanceOf(RuntimeException.class);
verify(mailboxSessionMapperFactory).getAnnotationMapper(eq(mailboxSession));
verify(annotationMapper).getAllAnnotations(eq(mailboxId));
verify(annotationMapper).deleteAnnotation(eq(mailboxId), eq(PRIVATE_KEY));
- verify(annotationMapper).deleteAnnotation(eq(mailboxId), eq(SHARED_KEY));
verifyNoMoreInteractions(mailboxSessionMapperFactory);
verifyNoMoreInteractions(annotationMapper);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org