svn commit: r1810355 - in /xmlgraphics/fop-pdf-images/trunk: src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java

[email protected]
Newsgroups gmane.text.xml.fop.cvs
Message-ID <[email protected]>
Author: ssteiner
Date: Mon Oct  2 13:41:22 2017
New Revision: 1810355

URL: http://svn.apache.org/viewvc?rev=1810355&view=rev
Log:
FOP-2746: PDF to PDF NPE during structuretree merge

Modified:
    xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java
    xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java

Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java?rev=1810355&r1=1810354&r2=1810355&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java Mon Oct  2 13:41:22 2017
@@ -132,8 +132,10 @@ public class StructureTreeMerger {
         for (COSBase entry : markedContentParents) {
             COSObject elemCos = (COSObject)entry;
             COSObject elemParent = (COSObject)elemCos.getItem(COSName.P);
-            PDFStructElem elem = structElemCache.get((int)elemCos.getObjectNumber());
-            createParents(elemCos, elemParent, elem);
+            if (elemParent != null) {
+                PDFStructElem elem = structElemCache.get((int)elemCos.getObjectNumber());
+                createParents(elemCos, elemParent, elem);
+            }
         }
     }
 

Modified: xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java?rev=1810355&r1=1810354&r2=1810355&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java Mon Oct  2 13:41:22 2017
@@ -218,4 +218,17 @@ public class StructureTreeMergerTestCase
         String test = name.getName();
         Assert.assertEquals(test, "P");
     }
+
+    @Test
+    public void testEmptyDict() throws IOException {
+        adapter = new PDFBoxAdapter(pdfPage, new HashMap(), new HashMap<Integer, PDFArray>());
+        StructureTreeMerger structureTreeMerger = new StructureTreeMerger(null, null, adapter, null);
+        COSArray cosArray = new COSArray();
+        COSObject o = new COSObject(new COSDictionary());
+        o.setObjectNumber(1);
+        o.setGenerationNumber(1);
+        cosArray.add(o);
+        structureTreeMerger.copyStructure(cosArray);
+        structureTreeMerger.addToPageParentTreeArray();
+    }
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.