Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-2574

StackOverflowError in PDFMerger with file that has recursion

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.8.8, 2.0.0
    • Fix Version/s: None
    • Component/s: Utilities
    • Labels:

      Description

      Reported by Marc Davis on the users mailing list: The attached file brings an exception when merging it with itself or with another file:

      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)
      

      and whole series of the last line.

      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.

      I've also attached an uncompressed version of the file, it has the same problem but it is easier to see. There the problem is at "14 0 obj".

        Attachments

        1. PDFBOX-2574-recursion_unc.pdf
          90 kB
          Tilman Hausherr
        2. PDFBOX-2574-recursion.pdf
          19 kB
          Tilman Hausherr

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              tilman Tilman Hausherr
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: