From 28158ec48b15e9af9dd7f97e31f753596548d2e5 Mon Sep 17 00:00:00 2001 From: eknizat <26163420+eknizat@users.noreply.github.com> Date: Tue, 2 Jul 2019 10:13:33 +0100 Subject: [PATCH] REPO-4331: Update target file size check (#66) * REPO-4331: Transformers should not throw an exception when source and target files are empty --- .../transformers/SelectingTransformer.java | 16 +++++++++++++--- .../transformer/MiscControllerTest.java | 19 ++++++++++++++++++- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectingTransformer.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectingTransformer.java index c3149970..077c2117 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectingTransformer.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectingTransformer.java @@ -63,7 +63,7 @@ public class SelectingTransformer transformers.add(new HtmlParserContentTransformer()); transformers.add(new StringExtractingContentTransformer()); transformers.add(new TextToPdfContentTransformer()); -// transformers.add(new OOXMLThumbnailContentTransformer()); // Doesn't work with java 11, comment put and disabled test +// transformers.add(new OOXMLThumbnailContentTransformer()); // Doesn't work with java 11, transformer and test disabled } /** @@ -90,10 +90,15 @@ public class SelectingTransformer { throw new TransformException(INTERNAL_SERVER_ERROR.value(), getMessage(e)); } - if (!targetFile.exists() || targetFile.length() == 0) + if (!targetFile.exists()) { throw new TransformException(INTERNAL_SERVER_ERROR.value(), - "Transformer failed to create an output file"); + "Transformer failed to create an output file. Target file does not exist."); + } + if (sourceFile.length() > 0 && targetFile.length() == 0) + { + throw new TransformException(INTERNAL_SERVER_ERROR.value(), + "Transformer failed to create an output file. Target file is empty but source file was not empty."); } } @@ -104,6 +109,11 @@ public class SelectingTransformer { if (transformer.isTransformable(sourceMimetype, targetMimetype, parameters)) { + if (logger.isDebugEnabled()) + { + logger.debug("Using " + transformer.getClass().getName() + + " to transform from " + sourceMimetype + " to " + targetMimetype ); + } return transformer; } } diff --git a/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/MiscControllerTest.java b/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/MiscControllerTest.java index 66d63619..bdf505b1 100644 --- a/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/MiscControllerTest.java +++ b/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/MiscControllerTest.java @@ -155,7 +155,7 @@ public class MiscControllerTest extends AbstractTransformerControllerTest } @Test - public void testStringtoString() throws Exception + public void testStringToString() throws Exception { String expected = null; byte[] content = null; @@ -181,6 +181,23 @@ public class MiscControllerTest extends AbstractTransformerControllerTest assertTrue("The content did not include \""+expected, contentResult.contains(expected)); } + @Test + public void testEmptyTextFileReturnsEmptyFile() throws Exception + { + // Use empty content to create an empty source file + byte[] content = new byte[0]; + + MvcResult result = sendText("txt", + "UTF-8", + MIMETYPE_TEXT_PLAIN, + "txt", + MIMETYPE_TEXT_PLAIN, + "UTF-8", + content); + + assertEquals("Returned content should be empty for an empty source file", 0, result.getResponse().getContentLength()); + } + @Test public void textToPdf() throws Exception {