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 5e607337319702c25fc1a3083c5ebe12e1487162 Author: Quan Tran <hqt...@linagora.com> AuthorDate: Tue Oct 8 14:53:45 2024 +0700 JAMES-2456 TikaHttpClientImpl: propagate error instead of Mono.empty Let the caller decide how to handle the error. If we return Mono.empty, the TextExtractor would turn it into ParsedContent.empty() and hide the error away (from possible valid empty content). --- .../java/org/apache/james/mailbox/tika/TikaHttpClientImpl.java | 5 +---- .../java/org/apache/james/mailbox/tika/TikaTextExtractorTest.java | 7 ++++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaHttpClientImpl.java b/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaHttpClientImpl.java index ca7f1a4ce9..8eb9cee89a 100644 --- a/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaHttpClientImpl.java +++ b/mailbox/tika/src/main/java/org/apache/james/mailbox/tika/TikaHttpClientImpl.java @@ -84,10 +84,7 @@ public class TikaHttpClientImpl implements TikaHttpClient { } }) .timeout(Duration.ofMillis(tikaConfiguration.getTimeoutInMillis())) - .onErrorResume(e -> { - LOGGER.warn("Failing to call Tika for content type '{}'", contentType.asString(), e); - return Mono.empty(); - }); + .doOnError(e -> LOGGER.warn("Failing to call Tika for content type '{}'", contentType.asString(), e)); } } diff --git a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaTextExtractorTest.java b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaTextExtractorTest.java index 38967f9d4b..6f6edbc9c5 100644 --- a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaTextExtractorTest.java +++ b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/TikaTextExtractorTest.java @@ -26,6 +26,7 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.concurrent.TimeoutException; import org.apache.commons.io.IOUtils; import org.apache.james.mailbox.extractor.ParsedContent; @@ -77,7 +78,7 @@ class TikaTextExtractorTest { } @Test - void shouldReturnEmptyParsedContentWhenTimeoutTriggered() throws Exception { + void shouldThrowExceptionWhenRequestTimeout() throws Exception { textExtractor = new TikaTextExtractor(new RecordingMetricFactory(), new TikaHttpClientImpl(TikaConfiguration.builder() .host(tika.getIp()) .port(tika.getPort()) @@ -86,10 +87,10 @@ class TikaTextExtractorTest { InputStream inputStream = ClassLoader.getSystemResourceAsStream("documents/writter.docx"); - assertThat(textExtractor.extractContentReactive(inputStream, + assertThatThrownBy(() -> textExtractor.extractContentReactive(inputStream, ContentType.of("application/vnd.openxmlformats-officedocument.wordprocessingml.document")) .block()) - .isEqualTo(ParsedContent.empty()); + .hasRootCauseInstanceOf(TimeoutException.class); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org