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();
+ }
}