From 0df5c1825400a5605cbc7e0c081cb1af49925649 Mon Sep 17 00:00:00 2001 From: Arindam Roy Date: Tue, 28 Oct 2025 15:25:47 +0530 Subject: [PATCH] ACS-10087 ATS Inconsistent behavior transforming corrupted docx document (#1150) --- .../base/transform/ProcessHandler.java | 17 ++++++ .../transform/tika/TikaTransformationIT.java | 54 +++++++++++++++++- .../src/test/resources/quick_corrupted.doc | Bin 0 -> 20915 bytes .../src/test/resources/quick_corrupted.ppt | Bin 0 -> 12103 bytes .../src/test/resources/quick_corrupted.pptx | Bin 0 -> 20480 bytes .../transform/common/TransformerMessages.java | 37 ++++++++++++ 6 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 engines/tika/src/test/resources/quick_corrupted.doc create mode 100644 engines/tika/src/test/resources/quick_corrupted.ppt create mode 100644 engines/tika/src/test/resources/quick_corrupted.pptx create mode 100644 model/src/main/java/org/alfresco/transform/common/TransformerMessages.java diff --git a/engines/base/src/main/java/org/alfresco/transform/base/transform/ProcessHandler.java b/engines/base/src/main/java/org/alfresco/transform/base/transform/ProcessHandler.java index 80e063a1..fe070c25 100644 --- a/engines/base/src/main/java/org/alfresco/transform/base/transform/ProcessHandler.java +++ b/engines/base/src/main/java/org/alfresco/transform/base/transform/ProcessHandler.java @@ -42,6 +42,7 @@ import java.util.stream.Collectors; import jakarta.jms.Destination; import jakarta.servlet.http.HttpServletRequest; +import org.springframework.http.HttpStatus; import org.springframework.web.multipart.MultipartFile; import org.alfresco.transform.base.CustomTransformer; @@ -51,6 +52,7 @@ import org.alfresco.transform.base.probes.ProbeTransform; import org.alfresco.transform.base.registry.CustomTransformers; import org.alfresco.transform.client.model.TransformRequest; import org.alfresco.transform.common.TransformerDebug; +import org.alfresco.transform.common.TransformerMessages; import org.alfresco.transform.exceptions.TransformException; import org.alfresco.transform.registry.TransformServiceRegistry; @@ -163,12 +165,27 @@ abstract class ProcessHandler extends FragmentHandler @Override public void onSuccessfulTransform() { + validateOutputLength(); sendTransformResponse(transformManager); LogEntry.setTargetSize(transformManager.getOutputLength()); LogEntry.setStatusCodeAndMessage(OK, "Success"); } + /** + * Checks whether the output file has zero length, although the input file has a non-zero length. This scenario happens when the source file is corrupted. + */ + private void validateOutputLength() + { + long sourceLen = getSourceSize(); + long targetLen = transformManager.getOutputLength(); + if (sourceLen > 0 && targetLen <= 0) + { + transformerDebug.logFailure(reference, TransformerMessages.CORRUPTED_FILE_ERROR); + throw new TransformException(HttpStatus.UNPROCESSABLE_ENTITY, TransformerMessages.CORRUPTED_FILE_ERROR); + } + } + protected void sendTransformResponse(TransformManagerImpl transformManager) {} diff --git a/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTransformationIT.java b/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTransformationIT.java index a3d1fd04..e55eb947 100644 --- a/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTransformationIT.java +++ b/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTransformationIT.java @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2021 Alfresco Software Limited + * Copyright (C) 2005 - 2025 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -29,6 +29,7 @@ package org.alfresco.transform.tika; import static java.text.MessageFormat.format; import static java.util.function.Function.identity; +import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; import static org.springframework.http.HttpStatus.OK; @@ -41,9 +42,12 @@ import org.apache.commons.lang3.tuple.Triple; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.springframework.core.io.Resource; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.web.client.HttpClientErrorException; import org.alfresco.transform.base.clients.HttpClient; +import org.alfresco.transform.common.TransformerMessages; /** * @author Cezar Leahu @@ -164,4 +168,52 @@ public class TikaTransformationIT allTargets("quick.tar.gz", "application/x-gzip")) .flatMap(identity()); } + + /** + * Tests that while transforming a corrupted file to txt format, exception is thrown. + * + * @param entry + * values to execute same test with different parameters. + */ + @ParameterizedTest + @MethodSource("engineTransformationsCorruptedToText") + public void testTransformationCorruptedToText(Triple entry) + { + final String sourceFile = entry.getLeft(); + final String sourceMimetype = entry.getRight(); + final String targetExtension = entry.getMiddle(); + String targetMimetype = extensionMimetype.get(targetExtension); + + final String description = format("Transform ({0}, {1} -> {2}, {3})", + sourceFile, sourceMimetype, targetMimetype, targetExtension); + + HttpClientErrorException expectedException = catchThrowableOfType(HttpClientErrorException.class, () -> { + HttpClient.sendTRequest(ENGINE_URL, sourceFile, null, + targetMimetype, targetExtension, ImmutableMap.of( + "targetEncoding", "UTF-8", + "sourceMimetype", sourceMimetype)); + fail("Corrupted file should have thrown an exception"); + }); + + assertThat(expectedException).as(description) + .hasMessageContaining(TransformerMessages.CORRUPTED_FILE_ERROR) + .extracting(HttpClientErrorException::getStatusCode) + .isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY); + } + + private static Stream> engineTransformationsCorruptedToText() + { + return Stream + .of( + textTargets("quick_corrupted.doc", "application/msword"), + textTargets("quick_corrupted.ppt", "application/vnd.ms-powerpoint"), + textTargets("quick_corrupted.pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation")) + .flatMap(identity()); + } + + private static Stream> textTargets(final String sourceFile, + final String sourceMimetype) + { + return Stream.of(Triple.of(sourceFile, "txt", sourceMimetype)); + } } diff --git a/engines/tika/src/test/resources/quick_corrupted.doc b/engines/tika/src/test/resources/quick_corrupted.doc new file mode 100644 index 0000000000000000000000000000000000000000..f5aa7c583027732c73748a2b69eeb169986a04bb GIT binary patch literal 20915 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 literal 0 HcmV?d00001 diff --git a/engines/tika/src/test/resources/quick_corrupted.ppt b/engines/tika/src/test/resources/quick_corrupted.ppt new file mode 100644 index 0000000000000000000000000000000000000000..68f6e924b7ab6f0b49ffcdd1ee12ab6ce02637f5 GIT binary patch literal 12103 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 NBz1)NFp17_`VYJ9i-G_E literal 0 HcmV?d00001 diff --git a/engines/tika/src/test/resources/quick_corrupted.pptx b/engines/tika/src/test/resources/quick_corrupted.pptx new file mode 100644 index 0000000000000000000000000000000000000000..54920d11ad598eb98d988b4812f8b566192db040 GIT binary patch literal 20480 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 HVR`<9fkT8Q literal 0 HcmV?d00001 diff --git a/model/src/main/java/org/alfresco/transform/common/TransformerMessages.java b/model/src/main/java/org/alfresco/transform/common/TransformerMessages.java new file mode 100644 index 00000000..5907d52a --- /dev/null +++ b/model/src/main/java/org/alfresco/transform/common/TransformerMessages.java @@ -0,0 +1,37 @@ +/* + * #%L + * Alfresco Transform Model + * %% + * Copyright (C) 2025 Alfresco Software Limited + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * . + * #L% + */ +package org.alfresco.transform.common; + +/** + * Holds definition of constants related to the Transformation messages. + */ +public class TransformerMessages +{ + // Exceptions + public static final String CORRUPTED_FILE_ERROR = "The file after transformation is empty. This could be caused by a corrupted source file."; + + /** + * Creates new instance of the class. + */ + private TransformerMessages() + {} +}