You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2016/11/02 17:04:51 UTC
svn commit: r1767739 -
/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
Author: tilman
Date: Wed Nov 2 17:04:51 2016
New Revision: 1767739
URL: http://svn.apache.org/viewvc?rev=1767739&view=rev
Log:
PDFBOX-3546: catch exception and skip incorrect XRefStm
Modified:
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java?rev=1767739&r1=1767738&r2=1767739&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java Wed Nov 2 17:04:51 2016
@@ -582,12 +582,27 @@ public class NonSequentialPDFParser exte
fixedOffset = checkXRefOffset(streamOffset);
if (fixedOffset > -1 && fixedOffset != streamOffset)
{
+ LOG.warn("/XRefStm offset " + streamOffset + " is incorrect, corrected to " + fixedOffset);
streamOffset = (int)fixedOffset;
trailer.setInt(COSName.XREF_STM, streamOffset);
}
setPdfSource(streamOffset);
skipSpaces();
- parseXrefObjStream(prev, false);
+ try
+ {
+ parseXrefObjStream(prev, false);
+ }
+ catch (IOException ex)
+ {
+ if (isLenient)
+ {
+ LOG.error("Failed to parse /XRefStm at offset " + streamOffset, ex);
+ }
+ else
+ {
+ throw ex;
+ }
+ }
}
prev = trailer.getInt(COSName.PREV);
if (prev > 0)