Tilman Hausherr created PDFBOX-2574:
---------------------------------------

             Summary: StackOverflowError in PDFMerger with file that has 
recursion
                 Key: PDFBOX-2574
                 URL: https://issues.apache.org/jira/browse/PDFBOX-2574
             Project: PDFBox
          Issue Type: Bug
          Components: Utilities
    Affects Versions: 1.8.8, 2.0.0
            Reporter: Tilman Hausherr


The attached file brings an exception when merging it with itself or with 
another file:
{code}
Exception in thread "main" java.lang.StackOverflowError
        at 
java.util.LinkedHashMap$LinkedHashIterator.<init>(LinkedHashMap.java:366)
        at 
java.util.LinkedHashMap$LinkedHashIterator.<init>(LinkedHashMap.java:366)
        at java.util.LinkedHashMap$EntryIterator.<init>(LinkedHashMap.java:412)
        at java.util.LinkedHashMap$EntryIterator.<init>(LinkedHashMap.java:412)
        at java.util.LinkedHashMap.newEntryIterator(LinkedHashMap.java:419)
        at java.util.HashMap$EntrySet.iterator(HashMap.java:1082)
        at 
org.apache.pdfbox.pdfwriter.COSWriter.visitFromDictionary(COSWriter.java:1016)
        at 
org.apache.pdfbox.pdfwriter.COSWriter.visitFromDictionary(COSWriter.java:1043)
{code}

The file has a reference to itself in the resources. The problem is in an 
object stream:

21 0 22 166 23 339 24 1378 25 1548 26 2585 27 2750 28 3782 29 3960 30 5004 
<</Count 1/Font<</F0 23 0 R/F1 25 0 R/F2 27 0 R/F3 29 0 R>>/Kids[9 0 
R]/MediaBox[0 0 612.0 792.0]/ProcSet 30 0 R/Resources 21 0 
R/Type/Pages/XObject<</Img0 19 0 R>>>>....

"21 0 22 166 23 339 24 1378 25 1548 26 2585 27 2750 28 3782 29 3960 30 5004" 
tells where the objects start, i.e. object 21 starts at offset 0 (after the 
table), object 22 at offset 166, etc. The problem here is that "/Resources 21 0 
R" points to itself. This isn't the only problem with this file... that object 
is a resource, yet it does have /kids. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to