Author: tilman
Date: Sun Jan 26 18:16:34 2025
New Revision: 1923385

URL: http://svn.apache.org/viewvc?rev=1923385&view=rev
Log:
PDFBOX-5939: add unit test case

Modified:
    
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java?rev=1923385&r1=1923384&r2=1923385&view=diff
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/multipdf/PDFMergerUtilityTest.java
 Sun Jan 26 18:16:34 2025
@@ -1271,4 +1271,24 @@ public class PDFMergerUtilityTest extend
         assertTrue(((PDActionGoTo) link.getAction()).getDestination() 
instanceof PDNamedDestination);
         doc.close();
     }
+
+    /**
+     * PDFBOX-5939: merge a file with an outline that has itself as a parent 
without producing a
+     * stack overflow.
+     *
+     * @throws IOException 
+     */
+    public void testOutlinesSelfParent() throws IOException
+    {
+        PDFMergerUtility pdfMergerUtility = new PDFMergerUtility();
+        pdfMergerUtility.addSource(new File(TARGETPDFDIR, 
"PDFBOX-5939-google-docs-1.pdf"));
+        pdfMergerUtility.addSource(new File(TARGETPDFDIR, 
"PDFBOX-5939-google-docs-1.pdf"));
+        pdfMergerUtility.setDestinationFileName(TARGETTESTDIR + 
"PDFBOX-5939-google-docs-result.pdf");
+        
pdfMergerUtility.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
+
+        PDDocument mergedDoc =
+                PDDocument.load(new File(TARGETTESTDIR, 
"PDFBOX-5939-google-docs-result.pdf"));
+        assertEquals(2, mergedDoc.getNumberOfPages());
+        mergedDoc.close();
+    }
 }


Reply via email to