I see this error a lot in an application with a lot of traffic when dealing with a PDF merge request.
java.lang.RuntimeException: The page 3 was requested but the document has only 2 pages. at com.lowagie.text.pdf.PdfWriter.close(PdfWriter.java:1169) at com.lowagie.text.pdf.PdfCopy.close(PdfCopy.java:485) at ...
The error is in the PdfCopy
class, addPage
method:
public void addPage(PdfImportedPage iPage) throws IOException, BadPdfFormatException
pageRef = getCurrentPage(); // increase pageReferences.size()
But later on an IOException
occurs (ClientAbortException
), but the last line ++currentPageNumber;
didn't get a chance to execute.
How do I prevent this from happening? Can I add a finally block in the last line?