Author: msahyoun
Date: Fri Apr 10 09:30:05 2026
New Revision: 1932952
Log:
PDFBOX-5660: close FDFDocument in case of Exception
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
Fri Apr 10 09:20:42 2026 (r1932951)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAcroForm.java
Fri Apr 10 09:30:05 2026 (r1932952)
@@ -152,24 +152,32 @@ public final class PDAcroForm implements
public FDFDocument exportFDF() throws IOException
{
FDFDocument fdf = new FDFDocument();
- FDFCatalog catalog = fdf.getCatalog();
- FDFDictionary fdfDict = new FDFDictionary();
- catalog.setFDF(fdfDict);
-
- List<PDField> fields = getFields();
- List<FDFField> fdfFields = new ArrayList<>(fields.size());
- for (PDField field : fields)
+ try
{
- fdfFields.add(field.exportFDF());
- }
+ FDFCatalog catalog = fdf.getCatalog();
+ FDFDictionary fdfDict = new FDFDictionary();
+ catalog.setFDF(fdfDict);
- fdfDict.setID(document.getDocument().getDocumentID());
+ List<PDField> fields = getFields();
+ List<FDFField> fdfFields = new ArrayList<>(fields.size());
+ for (PDField field : fields)
+ {
+ fdfFields.add(field.exportFDF());
+ }
- if (!fdfFields.isEmpty())
+ fdfDict.setID(document.getDocument().getDocumentID());
+
+ if (!fdfFields.isEmpty())
+ {
+ fdfDict.setFields(fdfFields);
+ }
+ return fdf;
+ }
+ catch (Exception e)
{
- fdfDict.setFields(fdfFields);
+ fdf.close();
+ throw e;
}
- return fdf;
}
/**