diff --git a/sejda-model/src/main/java/org/sejda/model/parameter/base/MultiplePdfSourceMultipleOutputParameters.java b/sejda-model/src/main/java/org/sejda/model/parameter/base/MultiplePdfSourceMultipleOutputParameters.java index 5e34f5412..83dca7f57 100644 --- a/sejda-model/src/main/java/org/sejda/model/parameter/base/MultiplePdfSourceMultipleOutputParameters.java +++ b/sejda-model/src/main/java/org/sejda/model/parameter/base/MultiplePdfSourceMultipleOutputParameters.java @@ -124,6 +124,7 @@ public String getSpecificResultFilename(int fileNumber, String expectedExtension } return n; }) + .map(IOUtils::shortenFilename) .orElse(null); } return null; diff --git a/sejda-sambox/src/test/java/org/sejda/impl/sambox/SplitByPageNumbersSamboxTaskTest.java b/sejda-sambox/src/test/java/org/sejda/impl/sambox/SplitByPageNumbersSamboxTaskTest.java index 1b9108616..f2fcd2714 100644 --- a/sejda-sambox/src/test/java/org/sejda/impl/sambox/SplitByPageNumbersSamboxTaskTest.java +++ b/sejda-sambox/src/test/java/org/sejda/impl/sambox/SplitByPageNumbersSamboxTaskTest.java @@ -19,6 +19,7 @@ */ package org.sejda.impl.sambox; +import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.sejda.model.optimization.OptimizationPolicy; @@ -238,6 +239,24 @@ public void specificResultFilenames_invalidCharacters() throws IOException { testContext.assertOutputContainsFilenames("pathtosomewhere.pdf", "`&aaa.pdf", "3_medium-test-file.pdf"); } + @Test + public void specificResultFilenames_tooLong() throws IOException { + setUpParameters(); + parameters.addSource(mediumInput()); + parameters.addPage(1); + parameters.addPage(2); + + String longfilename = StringUtils.repeat("abcde012345", 200) + ".pdf"; + parameters.addSpecificResultFilename(longfilename); + + execute(parameters); + + testContext.assertTaskCompleted(); + testContext.assertOutputSize(3); + testContext.assertOutputContainsFilenames("abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde012345abcde0123.pdf", + "2_medium-test-file.pdf", "3_medium-test-file.pdf"); + } + @Test public void sharedResourcesAreNotPurged() throws IOException { setUpParameters();