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(); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: fop-commits-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: fop-commits-h...@xmlgraphics.apache.org