You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Kevin Jackson (JIRA)" <ji...@apache.org> on 2010/11/08 21:13:07 UTC
[jira] Created: (PDFBOX-889) Empty page causes NPE in importPage
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.
[jira] Resolved: (PDFBOX-889) Empty page causes NPE in importPage
Posted by "Adam Nichols (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/PDFBOX-889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Adam Nichols resolved PDFBOX-889.
---------------------------------
Resolution: Fixed
Fix Version/s: 1.4.0
Assignee: Adam Nichols
Committed in revision 1038232. For future reference, it's best to attach patches as files; when they're rendered in HTML it butchers the whitespace which prevents me from applying the patch. That'll just help save me some time since I can just apply the patch instead of reading it and making the changes by hand.
> 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
> Assignee: Adam Nichols
> Fix For: 1.4.0
>
>
> 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.