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/06/25 01:52:44 UTC
[james-project] 02/05: JAMES-2994 Reprocessing to an unknown
processor triggers an infinite loop as the mail is nack
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 156a6f269165f0c8061115c0c6a055bee0ab99ad
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Jun 21 10:58:17 2019 +0700
JAMES-2994 Reprocessing to an unknown processor triggers an infinite loop as the mail is nack
---
.../mailets/MailReprocessingIntegrationTest.java | 31 ++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/MailReprocessingIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/MailReprocessingIntegrationTest.java
index 19c63a8..f8de0d5 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/MailReprocessingIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/MailReprocessingIntegrationTest.java
@@ -20,6 +20,7 @@
package org.apache.james.transport.mailets;
import static io.restassured.RestAssured.given;
+import static org.apache.james.mailets.configuration.CommonProcessors.ERROR_REPOSITORY;
import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
import static org.apache.james.mailets.configuration.Constants.FROM;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
@@ -53,6 +54,7 @@ import org.apache.james.webadmin.authentication.NoAuthenticationFilter;
import org.apache.mailet.base.test.FakeMail;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
@@ -188,6 +190,35 @@ public class MailReprocessingIntegrationTest {
assertThat(containsExactlyOneMail(REPOSITORY_A)).isTrue();
}
+ @Ignore("JAMES-2994 Reprocessing to an unknown processor triggers an infinite loop as the mail is nack")
+ @Test
+ public void reprocessingShouldProcessAsErrorWhenUnknownMailProcessor() throws Exception {
+ // Given an incoming email
+ messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
+ .sendMessage(FakeMail.builder()
+ .name("name")
+ .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+ .addToRecipient(RECIPIENT)
+ .setSender(FROM)
+ .setText("match me"))
+ .sender(FROM)
+ .recipient(RECIPIENT));
+ // Being stored in MailRepository B
+ awaitAtMostOneMinute.until(() -> containsExactlyOneMail(REPOSITORY_B));
+
+ // When I reprocess it
+ given()
+ .spec(specification)
+ .param("action", "reprocess")
+ .param("queue", MailQueueFactory.SPOOL)
+ .param("processor", "unknown")
+ .patch("/mailRepositories/" + REPOSITORY_B.getPath().urlEncoded() + "/mails").prettyPeek();
+
+ // Then I can move it to repository A
+ awaitAtMostOneMinute.until(() -> containsExactlyOneMail(ERROR_REPOSITORY));
+ assertThat(containsExactlyOneMail(ERROR_REPOSITORY)).isTrue();
+ }
+
private boolean containsExactlyOneMail(MailRepositoryUrl repositoryUrl) {
try {
return given()
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org