Form the users mailing list
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(
291: for (int i = 0; i < fields.size() && retval == null; i++)
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?
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()?