Author: lehmi
Date: Sun Oct 21 20:30:11 2018
New Revision: 1844519

URL: http://svn.apache.org/viewvc?rev=1844519&view=rev
Log:
PDFBOX-4354: avoid NumberFormatException

Modified:
    
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1844519&r1=1844518&r2=1844519&view=diff
==============================================================================
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
 Sun Oct 21 20:30:11 2018
@@ -2049,13 +2049,20 @@ public class COSParser extends BaseParse
                 Map<COSObjectKey, Long> xrefOffset = 
xrefTrailerResolver.getXrefTable();
                 for (int i = 0; i < nrOfObjects; i++)
                 {
-                    long objNumber = Long.parseLong(numbers[i * 2]);
-                    COSObjectKey objKey = new COSObjectKey(objNumber, 0);
-                    Long existingOffset = 
bfSearchCOSObjectKeyOffsets.get(objKey);
-                    if (existingOffset == null || offset > existingOffset)
+                    try
                     {
-                        bfSearchCOSObjectKeyOffsets.put(objKey, -stmObjNumber);
-                        xrefOffset.put(objKey, -stmObjNumber);
+                        long objNumber = Long.parseLong(numbers[i * 2]);
+                        COSObjectKey objKey = new COSObjectKey(objNumber, 0);
+                        Long existingOffset = 
bfSearchCOSObjectKeyOffsets.get(objKey);
+                        if (existingOffset == null || offset > existingOffset)
+                        {
+                            bfSearchCOSObjectKeyOffsets.put(objKey, 
-stmObjNumber);
+                            xrefOffset.put(objKey, -stmObjNumber);
+                        }
+                    }
+                    catch (NumberFormatException exception)
+                    {
+                        LOG.debug("Skipped corrupt object key in stream: " + 
stmObjNumber);
                     }
                 }
             }


Reply via email to