Author: tilman Date: Mon Sep 1 15:15:38 2025 New Revision: 1928163 Log: PDFBOX-5660: add debug output, improve exception message
Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java Modified: pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java ============================================================================== --- pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java Mon Sep 1 12:45:02 2025 (r1928162) +++ pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java Mon Sep 1 15:15:38 2025 (r1928163) @@ -41,6 +41,9 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import org.apache.pdfbox.cos.COSArray; import org.apache.pdfbox.cos.COSBase; import org.apache.pdfbox.cos.COSBoolean; @@ -85,6 +88,8 @@ import org.apache.pdfbox.util.Hex; */ public class COSWriter implements ICOSVisitor { + private static final Log LOG = LogFactory.getLog(COSWriter.class); + /** * The dictionary open token. */ @@ -882,7 +887,8 @@ public class COSWriter implements ICOSVi throw new IOException("Can't write new byteRange '" + byteRange + "' not enough space: byteRange.length(): " + byteRange.length() + ", byteRangeLength: " + byteRangeLength + - ", byteRangeOffset: " + byteRangeOffset); + ", byteRangeOffset: " + byteRangeOffset + + ", inLength: " + inLength); } // copy the new incremental data into a buffer (e.g. signature dict, trailer) @@ -1278,10 +1284,15 @@ public class COSWriter implements ICOSVi COSBase base3 = byteRange.get(3); if (base2 instanceof COSInteger && base3 instanceof COSInteger) { + // PDFBOX-5521 avoid hitting "old" signatures long br2 = ((COSInteger) base2).longValue(); long br3 = ((COSInteger) base3).longValue(); if (br2 + br3 > incrementalInput.length()) { + if (LOG.isDebugEnabled()) + { + LOG.debug("reachedSignature at offset " + getStandardOutput().getPos() + ", byteRange: " + byteRange); + } reachedSignature = true; } }