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 rc...@apache.org on 2020/07/15 04:36:13 UTC
[james-project] 05/09: JAMES-3305 Key registration should not crash
on invalid messages
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 999655314fb9054cb162992b93672928af0ecb16
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Fri Jul 10 11:43:27 2020 +0700
JAMES-3305 Key registration should not crash on invalid messages
---
.../james/mailbox/events/RabbitMQEventBusTest.java | 34 ++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
index 58d1979..d2eac1f 100644
--- a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
+++ b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
@@ -67,6 +67,7 @@ import org.apache.james.event.json.EventSerializer;
import org.apache.james.mailbox.events.EventBusTestFixture.GroupA;
import org.apache.james.mailbox.events.EventBusTestFixture.MailboxListenerCountingSuccessfulExecution;
import org.apache.james.mailbox.events.EventDispatcher.DispatchingFailureGroup;
+import org.apache.james.mailbox.events.RoutingKeyConverter.RoutingKey;
import org.apache.james.mailbox.model.TestId;
import org.apache.james.mailbox.model.TestMessageId;
import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
@@ -241,6 +242,39 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
}
@Test
+ void registrationShouldNotCrashOnInvalidMessage() {
+ EventCollector listener = new EventCollector();
+ Mono.from(eventBus.register(listener, KEY_1)).block();
+
+ rabbitMQExtension.getSender()
+ .send(Mono.just(new OutboundMessage(MAILBOX_EVENT_EXCHANGE_NAME,
+ RoutingKey.of(KEY_1).asString(),
+ "BAD_PAYLOAD!".getBytes(StandardCharsets.UTF_8))))
+ .block();
+
+ eventBus.dispatch(EVENT, KEY_1).block();
+ await().timeout(org.awaitility.Duration.TEN_SECONDS)
+ .untilAsserted(() -> assertThat(listener.getEvents()).containsOnly(EVENT));
+ }
+
+ @Test
+ void registrationShouldNotCrashOnInvalidMessages() {
+ EventCollector listener = new EventCollector();
+ Mono.from(eventBus.register(listener, KEY_1)).block();
+
+ IntStream.range(0, 100)
+ .forEach(i -> rabbitMQExtension.getSender()
+ .send(Mono.just(new OutboundMessage(MAILBOX_EVENT_EXCHANGE_NAME,
+ RoutingKey.of(KEY_1).asString(),
+ "BAD_PAYLOAD!".getBytes(StandardCharsets.UTF_8))))
+ .block());
+
+ eventBus.dispatch(EVENT, KEY_1).block();
+ await().timeout(org.awaitility.Duration.TEN_SECONDS)
+ .untilAsserted(() -> assertThat(listener.getEvents()).containsOnly(EVENT));
+ }
+
+ @Test
void deserializeEventCollectorGroup() throws Exception {
assertThat(Group.deserialize("org.apache.james.mailbox.util.EventCollector$EventCollectorGroup"))
.isEqualTo(new EventCollector.EventCollectorGroup());
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org