FOP-2746: PDF to PDF NPE during structuretree merge

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop-pdf-images/trunk@1810355 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java b/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java
index 2436fc8..2201c9c 100644
--- a/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java
+++ b/src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java
@@ -132,8 +132,10 @@
         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);
+            }
         }
     }
 
diff --git a/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java b/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java
index 89905fd..bad5ae9 100644
--- a/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java
+++ b/test/java/org/apache/fop/render/pdf/StructureTreeMergerTestCase.java
@@ -218,4 +218,17 @@
         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();
+    }
 }