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

Reply via email to