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

NPE in COSWriter.getObjectKey() when saving broken file

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.0.1 PDFBox, 4.0.0
    • 4.0.0, 3.0.3 PDFBox
    • Writing
    • None

    Description

      This happens with the broken file from PDFBOX-5782 when this code is run:

      PDDocument doc = Loader.loadPDF(new File("PDFBOX-5782.pdf"));
      PDFRenderer r = new PDFRenderer(doc);
      r.renderImage(0);
      doc.save(OutputStream.nullOutputStream());
      
      Exception in thread "main" java.lang.NullPointerException
      	at java.base/java.util.Hashtable.put(Hashtable.java:475)
      	at org.apache.pdfbox.pdfwriter.COSWriter.getObjectKey(COSWriter.java:1082)
      	at org.apache.pdfbox.pdfwriter.COSWriter.writeReference(COSWriter.java:1391)
      	at org.apache.pdfbox.pdfwriter.COSWriter.visitFromDictionary(COSWriter.java:1231)
      	at org.apache.pdfbox.pdfwriter.COSWriter.writeDictionary(COSWriter.java:1179)
      	at org.apache.pdfbox.pdfwriter.COSWriter.visitFromDictionary(COSWriter.java:1226)
      	at org.apache.pdfbox.pdfwriter.COSWriter.writeDictionary(COSWriter.java:1179)
      	at org.apache.pdfbox.pdfwriter.COSWriter.visitFromDictionary(COSWriter.java:1226)
      	at org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:1413)
      	at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:381)
      	at org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:606)
      	at org.apache.pdfbox.pdfwriter.COSWriter.doWriteBodyCompressed(COSWriter.java:492)
      	at org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1319)
      	at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:429)
      	at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1593)
      	at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1469)
      	at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1044)
      	at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:968)
      

      It does not happen if r.renderImage(0); is removed.

      Attachments

        Activity

          People

            lehmi Andreas Lehmkühler
            tilman Tilman Hausherr
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: