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 ad...@apache.org on 2016/11/10 07:34:31 UTC
[03/10] james-project git commit: MAILBOX-270: protocol defines the
quota, data size of at least 1024 and number of annotations at least 10
MAILBOX-270: protocol defines the quota, data size of at least 1024 and number of annotations at least 10
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f59434ce
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f59434ce
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f59434ce
Branch: refs/heads/master
Commit: f59434ce2bb778b41fc68c97a5af7f3047126823
Parents: af731a6
Author: Quynh Nguyen <qn...@linagora.com>
Authored: Mon Sep 12 11:13:33 2016 +0700
Committer: Quynh Nguyen <qn...@linagora.com>
Committed: Wed Nov 9 11:39:49 2016 +0700
----------------------------------------------------------------------
.../james/imap/api/display/HumanReadableText.java | 2 ++
.../imap/processor/SetAnnotationProcessor.java | 4 ++++
.../imap/processor/SetAnnotationProcessorTest.java | 16 ++++++++++++++++
.../processor/base/MailboxEventAnalyserTest.java | 1 -
4 files changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/f59434ce/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java b/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
index 8ae4cd0..6db33e2 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
@@ -169,6 +169,8 @@ public class HumanReadableText {
public static final String UNDEFINED_QUOTA_ROOT_KEY = "org.apache.james.imap.UNDEFINED_QUOTA_ROOT_KEY";
public static final String UNDEFINED_QUOTA_ROOT_DEFAULT_VALUE = "The Quota Root {0} does not exist.";
+ public static final String MAILBOX_ANNOTATION_KEY = "org.apache.james.imap.ANNOTATION_ERROR_KEY";
+
private final String defaultValue;
private final String key;
http://git-wip-us.apache.org/repos/asf/james-project/blob/f59434ce/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
index 4ce0fee..abfb453 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
@@ -33,6 +33,7 @@ import org.apache.james.imap.main.PathConverter;
import org.apache.james.imap.message.request.SetAnnotationRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.exception.AnnotationException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.MailboxPath;
@@ -63,6 +64,9 @@ public class SetAnnotationProcessor extends AbstractMailboxProcessor<SetAnnotati
} catch (MailboxNotFoundException e) {
session.getLog().info(command.getName() + " failed for mailbox " + mailboxName, e);
no(command, tag, responder, HumanReadableText.FAILURE_NO_SUCH_MAILBOX, StatusResponse.ResponseCode.tryCreate());
+ } catch (AnnotationException e) {
+ session.getLog().info(command.getName() + " failed for mailbox " + mailboxName, e);
+ no(command, tag, responder, new HumanReadableText(HumanReadableText.MAILBOX_ANNOTATION_KEY, e.getMessage()));
} catch (MailboxException e) {
session.getLog().info(command.getName() + " failed for mailbox " + mailboxName, e);
no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
http://git-wip-us.apache.org/repos/asf/james-project/blob/f59434ce/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
index 1a76a1e..1d1e3ee 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
@@ -43,6 +43,7 @@ import org.apache.james.imap.encode.FakeImapSession;
import org.apache.james.imap.message.request.SetAnnotationRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.exception.AnnotationException;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.mock.MockMailboxSession;
@@ -62,6 +63,7 @@ import com.google.common.collect.ImmutableList;
public class SetAnnotationProcessorTest {
private static final String TAG = "TAG";
+ private static final int FIRST_ELEMENT_INDEX = 0;
@InjectMocks
private SetAnnotationProcessor processor;
@@ -158,4 +160,18 @@ public class SetAnnotationProcessorTest {
assertThat(humanTextCaptor.getAllValues()).containsOnly(HumanReadableText.COMPLETED);
}
+
+ @Test
+ public void processShouldResponseNoWhenManagerThrowsAnnotationException() throws Exception {
+ when(mockImapSession.getLog()).thenReturn(log);
+
+ doThrow(AnnotationException.class).when(mockMailboxManager).updateAnnotations(eq(inbox), eq(mockMailboxSession), eq(MAILBOX_ANNOTATIONS));
+
+ processor.process(request, mockResponder, mockImapSession);
+
+ verify(mockStatusResponseFactory, times(1)).taggedNo(any(String.class), any(ImapCommand.class), humanTextCaptor.capture());
+
+ assertThat(humanTextCaptor.getAllValues().get(FIRST_ELEMENT_INDEX).getKey()).isEqualTo(HumanReadableText.MAILBOX_ANNOTATION_KEY);
+
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/f59434ce/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
index 9b889df..2d9eee6 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
@@ -33,7 +33,6 @@ import java.util.EnumSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.Set;
import javax.mail.Flags;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org