PdfFileEditor functions in multi threaded code

Hello

using Aspose PDF for Java 24.5

we want to use PdfFileEditor​ split functions in multi threaded code.

It seems that even if you use own instances for the threads you have side effects between the objects.

Code sample:

public void splitAllMulti(String srcDoc, String destDir) throws IOException, InterruptedException, ExecutionException {
    int parallelism = 2;
    ForkJoinPool customThreadPool = new ForkJoinPool(parallelism);
    String fname = destDir + "/" + FilenameUtils.getBaseName(srcDoc);
    
    ArrayList<Integer> stream = new ArrayList<>();
    stream.add(0);
    stream.add(1);
    
    customThreadPool.submit(() -> 
        stream.parallelStream().forEach(i -> {
            PdfFileEditor pdfEditor2 = new com.aspose.pdf.facades.PdfFileEditor();
            pdfEditor2.setCopyLogicalStructure(true);
            pdfEditor2.setOptimizeSize(true);
            String destName = fname + "_" + i + "_%NUM%.pdf";
            pdfEditor2.splitToPages(srcDoc, destName);
            pdfEditor2 = null;
        })
    ).get();
}

If you run this code on a large PDF (eg 100 plus pages)

you get exceptions:

*Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7*

*at com.aspose.pdf.internal.l2f.l1v.lI(Unknown Source)*

*at com.aspose.pdf.internal.l2f.l1v.lj(Unknown Source)*

*at com.aspose.pdf.PageCollection.delete(Unknown Source)*

*at com.aspose.pdf.PageCollection.delete(Unknown Source)*

*at com.aspose.pdf.facades.APdfFileEditor.lI(Unknown Source)*

*at com.aspose.pdf.facades.APdfFileEditor.splitToPages(Unknown Source)*

*at com.aspose.pdf.facades.PdfFileEditor.splitToPages(Unknown Source)*

Is the class PdfFileEditor ready to be used in a multi thread scenario?
What do we need to consider?

kind regards
Sascha

@sbuchner

We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): PDFJAVA-44001

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.