Hi PDFBox Team, We are facing a problem with the larger PDF files generated by PDFBox. When looking into the 3.0.0-RC1 release notes, the following item is mentioned "[PDFBOX-4952] - PDF compression - object stream creation" .
When I tried with 3.0.0.RC1, compression was happening and the file size was small compared to the 2.x version. But when I tried to export a medium sized file of 1500 pages then saving PDDcouemnt.save is failing with a stack overflow error. Seems like the entire object tree is loaded into the stack recursively before writing into the file. *"Caused by: java.lang.StackOverflowError* * at java.util.HashMap.hash(HashMap.java:339) at java.util.HashMap.containsKey(HashMap.java:596) at org.apache.pdfbox.pdfwriter.compress.COSObjectPool.contains(COSObjectPool.java:137) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addObjectToPool(COSWriterCompressionPool.java:94) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:146) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196) at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addStructure(COSWriterCompressionPool.java:168)* *at org.apache.pdfbox.pdfwriter.compress.COSWriterCompressionPool.addCOSDictionary(COSWriterCompressionPool.java:196)"* Is this a known issue? Is there any plan to fix it? Thanks & Regards, Ravikiran