[ https://issues.apache.org/jira/browse/PDFBOX-2512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14245321#comment-14245321 ]
Andreas Lehmkühler commented on PDFBOX-2512: -------------------------------------------- I've just realized that the code in the trunk is different. We should consider some similar solution when working PDFBOX-2515. > OutOfMemory while signing large documents > ----------------------------------------- > > Key: PDFBOX-2512 > URL: https://issues.apache.org/jira/browse/PDFBOX-2512 > Project: PDFBox > Issue Type: Bug > Components: Parsing, Signing > Affects Versions: 1.8.7 > Reporter: Thomas Chojecki > Assignee: Thomas Chojecki > Fix For: 1.8.8 > > Attachments: keystore.p12 > > > While working with large documents, we found some memory issues. > 1. The method close() in the COSDocument, clones the objectpool and does not > clean it properly. The cloning in getObjects() cause a OutOfMemory exception. > 2.The COSWriter copy the whole pdf into the memory for signing and does not > use BufferedInputStream for the FileInputStream which also has a big > performance impact. (PDFBOX-1798) > 3. The cloning of COSStreams cause a OutOfMemory exception > I used the CreateSignature example with a about 150 MB big document from here: > https://cdn-reichelt.de/bilder/downloads/reichelt_01-2015_DE_B_HQ.pdf > Additionaly I add a RandomAccessFile to the PDDocument.load in the > CreateSignature class. > PDDocument doc = PDDocument.load(document,new RandomAccessFile(new > File("d:\\temp.bin"), "rw")); (this prevent the OOM for the third case) > The use of a BuffedInputStream in case two, will increase the signing speed > from more than 5 minutes to less than 1 minute. -- This message was sent by Atlassian JIRA (v6.3.4#6332)