Author: tilman Date: Thu May 17 20:29:10 2018 New Revision: 1831810 URL: http://svn.apache.org/viewvc?rev=1831810&view=rev Log: PDFBOX-4222: ignore all page labels if there is a bad entry (similar to Adobe Reader)
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java?rev=1831810&r1=1831809&r2=1831810&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java Thu May 17 20:29:10 2018 @@ -607,12 +607,18 @@ public class PDFMergerUtility COSArray srcNums = (COSArray) srcLabels.getDictionaryObject(COSName.NUMS); if (srcNums != null) { + int startSize = destNums.size(); for (int i = 0; i < srcNums.size(); i += 2) { COSBase base = srcNums.getObject(i); if (!(base instanceof COSNumber)) { - LOG.warn("page labels skipped at index " + i + ", should be a number, but is " + base); + LOG.error("page labels ignored, index " + i + " should be a number, but is " + base); + // remove what we added + while (destNums.size() > startSize) + { + destNums.remove(startSize); + } break; } COSNumber labelIndex = (COSNumber) base;