You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by tb...@apache.org on 2012/05/24 15:05:26 UTC
svn commit: r1342242 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: ExtractText.java
pdmodel/common/PDNameTreeNode.java
Author: tboehme
Date: Thu May 24 13:05:25 2012
New Revision: 1342242
URL: http://svn.apache.org/viewvc?rev=1342242&view=rev
Log:
PDFBOX-1320: document possible null return value in PDNameTreeNode.getValue and check return value in ExtractText
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/ExtractText.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/ExtractText.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/ExtractText.java?rev=1342242&r1=1342241&r2=1342242&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/ExtractText.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/ExtractText.java Thu May 24 13:05:25 2012
@@ -281,37 +281,40 @@ public class ExtractText
PDEmbeddedFilesNameTreeNode embeddedFiles = names.getEmbeddedFiles();
if (embeddedFiles != null)
{
- for (Map.Entry<String,Object> ent : embeddedFiles.getNames().entrySet())
- {
- if (debug)
- {
- System.err.println("Processing embedded file " + ent.getKey() + ":");
- }
- PDComplexFileSpecification spec = (PDComplexFileSpecification) ent.getValue();
- PDEmbeddedFile file = spec.getEmbeddedFile();
- if (file.getSubtype().equals("application/pdf"))
+ Map<String,Object> embeddedFileNames = embeddedFiles.getNames();
+ if (embeddedFileNames != null) {
+ for (Map.Entry<String,Object> ent : embeddedFileNames.entrySet())
{
if (debug)
{
- System.err.println(" is PDF (size=" + file.getSize() + ")");
+ System.err.println("Processing embedded file " + ent.getKey() + ":");
}
- InputStream fis = file.createInputStream();
- PDDocument subDoc = null;
- try
- {
- subDoc = PDDocument.load(fis);
- }
- finally
- {
- fis.close();
- }
- try
- {
- stripper.writeText( subDoc, output );
- }
- finally
+ PDComplexFileSpecification spec = (PDComplexFileSpecification) ent.getValue();
+ PDEmbeddedFile file = spec.getEmbeddedFile();
+ if (file.getSubtype().equals("application/pdf"))
{
- subDoc.close();
+ if (debug)
+ {
+ System.err.println(" is PDF (size=" + file.getSize() + ")");
+ }
+ InputStream fis = file.createInputStream();
+ PDDocument subDoc = null;
+ try
+ {
+ subDoc = PDDocument.load(fis);
+ }
+ finally
+ {
+ fis.close();
+ }
+ try
+ {
+ stripper.writeText( subDoc, output );
+ }
+ finally
+ {
+ subDoc.close();
+ }
}
}
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java?rev=1342242&r1=1342241&r2=1342242&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDNameTreeNode.java Thu May 24 13:05:25 2012
@@ -175,7 +175,8 @@ public class PDNameTreeNode implements C
* This will return a map of names. The key will be a string, and the
* value will depend on where this class is being used.
*
- * @return ordered map of cos objects
+ * @return ordered map of cos objects or <code>null</code> if dictionary
+ * contains no 'Names' entry
* @throws IOException If there is an error while creating the sub types.
*/
public Map<String, Object> getNames() throws IOException