[ 
https://issues.apache.org/jira/browse/PDFBOX-2512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17257716#comment-17257716
 ] 

Ralf Hauser commented on PDFBOX-2512:
-------------------------------------

Did a quick test with [^programWinter2015_20210103_091853-sig_LTV.pdf] 35MB

 

when doing -Xmx70m , the signature works

with -Xmx50m 

  java.lang.OutOfMemoryError: GC overhead limit exceeded
   at java.lang.StringBuilder.toString(StringBuilder.java:407)
   at org.apache.pdfbox.pdfparser.BaseParser.readLong(BaseParser.java:1281)
   at 
org.apache.pdfbox.pdfparser.BaseParser.readObjectNumber(BaseParser.java:1212)
   at 
org.apache.pdfbox.pdfparser.PDFObjectStreamParser.privateReadObjectNumbers(PDFObjectStreamParser.java:104)
   at 
org.apache.pdfbox.pdfparser.PDFObjectStreamParser.parseObject(PDFObjectStreamParser.java:77)
   at 
org.apache.pdfbox.pdfparser.COSParser.parseObjectStreamObject(COSParser.java:779)
   at 
org.apache.pdfbox.pdfparser.COSParser.parseObjectDynamically(COSParser.java:637)
   at 
org.apache.pdfbox.pdfparser.COSParser.dereferenceCOSObject(COSParser.java:586)
   at org.apache.pdfbox.cos.COSObject.getObject(COSObject.java:115)
   at org.apache.pdfbox.pdfwriter.COSWriter.prepareIncrement(COSWriter.java:327)
   at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1425)
   at org.apache.pdfbox.pdmodel.PDDocument.saveIncremental(PDDocument.java:997)
   ...

 

with -Xmx30m 

  java.lang.OutOfMemoryError: Java heap space
   at java.util.Arrays.copyOf(Arrays.java:3236)
   at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:191)
   at org.apache.pdfbox.cos.COSStream.createView(COSStream.java:218)
   at 
org.apache.pdfbox.pdfparser.PDFObjectStreamParser.<init>(PDFObjectStreamParser.java:48)
   at 
org.apache.pdfbox.pdfparser.COSParser.parseObjectStreamObject(COSParser.java:778)
   at 
org.apache.pdfbox.pdfparser.COSParser.parseObjectDynamically(COSParser.java:637)
   at 
org.apache.pdfbox.pdfparser.COSParser.dereferenceCOSObject(COSParser.java:586)
   at org.apache.pdfbox.cos.COSObject.getObject(COSObject.java:115)
   at org.apache.pdfbox.pdfwriter.COSWriter.prepareIncrement(COSWriter.java:327)
   at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1425)
   at org.apache.pdfbox.pdmodel.PDDocument.saveIncremental(PDDocument.java:997)
   at 
org.apache.pdfbox.examples.signature.CreateVisibleSignature.signPDF(CreateVisibleSignature.java:...
   ...

> 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
>            Priority: Major
>             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
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to