Maruan Sahyoun created PDFBOX-2965:
--------------------------------------

             Summary: NPE in PDAcroForm.getField() if the /Fields entry is 
missing
                 Key: PDFBOX-2965
                 URL: https://issues.apache.org/jira/browse/PDFBOX-2965
             Project: PDFBox
          Issue Type: Bug
          Components: AcroForm
    Affects Versions: 1.8.10
            Reporter: Maruan Sahyoun
             Fix For: 1.8.11


Form the users mailing list

{quote}
I get a lot of weird documents.  When I try to set a particular field value, 
some of them throw NullPointerExceptions from line PDAcroForm.getField(), line 
291:

287: COSArray fields =
288:    (COSArray) acroForm.getDictionaryObject(
289:        COSName.getPDFName("Fields"));
290:
291: for (int i = 0; i < fields.size() && retval == null; i++)
292:{

To avoid this, at first I was calling PDAcroForm.getFields() and checking that 
to see if that was NULL but I realized that it would usually create a new 
fields array to return which seemed wasteful.

Is the most efficient way to avoid this to first call:
   COSArray fields =  (COSArray) acroForm.getDictionaryObject( 
COSName.getPDFName("Fields"));
myself and check if that is NULL? 


Secondary Question:
The method PDAcroForm.getFields() does a not-NULL check of fields before 
calling fields.size().
Is there a reason that this check is not performed in getField()?
{quote}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to