You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2024/10/31 08:16:50 UTC

svn commit: r1921707 - /pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestFDF.java

Author: tilman
Date: Thu Oct 31 08:16:50 2024
New Revision: 1921707

URL: http://svn.apache.org/viewvc?rev=1921707&view=rev
Log:
PDFBOX-5894: add test

Modified:
    pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestFDF.java

Modified: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestFDF.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestFDF.java?rev=1921707&r1=1921706&r2=1921707&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestFDF.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestFDF.java Thu Oct 31 08:16:50 2024
@@ -16,8 +16,6 @@
  */
 package org.apache.pdfbox.pdmodel;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
@@ -26,9 +24,15 @@ import java.net.URISyntaxException;
 import java.util.List;
 
 import org.apache.pdfbox.Loader;
+import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.cos.COSObject;
 import org.apache.pdfbox.pdmodel.fdf.FDFDocument;
 import org.apache.pdfbox.pdmodel.fdf.FDFField;
 import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -54,6 +58,26 @@ class TestFDF
         checkFields("/org/apache/pdfbox/pdfparser/nocatalog.fdf");
     }
 
+    /**
+     * PDFBOX-5894: check that premature file close bug is fixed.
+     *
+     * @throws IOException 
+     */
+    @Test
+    void testPDFBox5894() throws IOException
+    {
+        try (FDFDocument fdf = Loader.loadFDF(new File("target/pdfs/PDFBOX-5894.fdf")))
+        {
+            List<COSObject> objectsByType = fdf.getDocument().getObjectsByType(COSName.ANNOT);
+            assertEquals(4, objectsByType.size());
+            for (COSObject obj : objectsByType)
+            {
+                COSBase base = obj.getObject();
+                assertEquals(COSName.ANNOT, ((COSDictionary) base).getDictionaryObject(COSName.TYPE));
+            }
+        }
+    }
+
     private void checkFields(String name) throws IOException, URISyntaxException
     {
         try (FDFDocument fdf = Loader.loadFDF(new File(TestFDF.class.getResource(name).toURI())))