Empty page causes NPE in importPage
-----------------------------------

                 Key: PDFBOX-889
                 URL: https://issues.apache.org/jira/browse/PDFBOX-889
             Project: PDFBox
          Issue Type: Bug
          Components: PDModel
    Affects Versions: 1.3.1
            Reporter: Kevin Jackson


An empty page does not need to have a Contents item.
PDDocument.importPage() fails with a NullPointerException when such an empty 
page is imported.



### Eclipse Workspace Patch 1.0
#P pdfbox
Index: pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
===================================================================
--- pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java      
(revision 1026306)
+++ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java      
(working copy)
@@ -322,16 +322,19 @@
         try
         {
             PDStream src = page.getContents();
-            PDStream dest = new PDStream( new COSStream( src.getStream(), 
document.getScratchFile() ) );
-            importedPage.setContents( dest );
-            os = dest.createOutputStream();
+            if (src != null)
+            {
+                PDStream dest = new PDStream( new COSStream( src.getStream(), 
document.getScratchFile() ) );
+                importedPage.setContents( dest );
+                os = dest.createOutputStream();
 
-            byte[] buf = new byte[10240];
-            int amountRead = 0;
-            is = src.createInputStream();
-            while((amountRead = is.read(buf,0,10240)) > -1)
-            {
-                os.write(buf, 0, amountRead);
+                byte[] buf = new byte[10240];
+                int amountRead = 0;
+                is = src.createInputStream();
+                while((amountRead = is.read(buf,0,10240)) > -1)
+                {
+                    os.write(buf, 0, amountRead);
+                }
             }
             addPage( importedPage );
         }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to