Folks - finally been able to isolate this issue with two samples: http://www.drrw.net/temp/iText/stackoverflow-sample1.pdf
http://www.drrw.net/temp/iText/stackoverflow-sample2.pdf When we attempt to run them through iText we get the "stack overflow" error occurring. Here's the code fragment of how we are using iText, and here's also the java log details of the loop that leads to the stack overflow crash. Thanks, DW ======================================================================== === private void addReaderData(com.lowagie.text.Document pdfDocument, PdfReader reader, PdfWriter writer, String bookmarkText, String attachmentName) throws Throwable { int i = 0; PDFGenerationThrowable pth=null; MessageCollection messages = new MessageCollection(); try { int n = reader.getNumberOfPages(); PdfContentByte cb = writer.getDirectContent(); while (i < n) { i++; cat.debug("Add Reader Data Page # "+i+ attachmentName); pdfDocument.setPageSize(reader.getPageSizeWithRotation(i)); pdfDocument.newPage(); // pdfDocument.add(new Paragraph("This is a test")); PdfImportedPage page = writer.getImportedPage(reader, i); int rotation = reader.getPageRotation(i); cat.debug("HEIGHT = " + reader.getPageSizeWithRotation(i).height()); if (rotation == 90 || rotation == 270) { cb.addTemplate(page, 0, -1f, 1f, 0, 0, reader .getPageSizeWithRotation(i).height()); } else { cb.addTemplate(page, 1f, 0, 0, 1f, 0, 0); } // pdfDocument.setFooter(pageFooter); } // end while }catch(Exception e) { cat.debug("Exception in addReaderData method while PDF Rotation", e); throw e; } catch(StackOverflowError sth) { cat.debug("Stack over Flow error in addReaderData method while PDF Rotation", sth); ArrayList tokens = new ArrayList(); tokens.add(new Integer(i)); tokens.add(bookmarkText+"{"+attachmentName+"}"); pdfErrors.add(new Message(MessageKeys.EGRANTS_INVALID_PDF_STACK_OVER_FLOW_ERROR, tokens)); } catch (Throwable th) { cat.debug("Exception in addReaderData method while PDF Rotation",th); //throw new StackOverFlowException(i,bookmarkText,new Exception()); throw th; } } // addReaderData() ============================================== Log details: 2006-08-01 11:36:57,107 DEBUG Task-0 gov.nih.egrants.beantier.processor.EgrantsFE - [GRANT00072741] - Stack over Flow error in addReaderData method while PDF Rotation java.lang.StackOverflowError at com.lowagie.text.pdf.BaseFont.getBaseName(BaseFont.java:421) at com.lowagie.text.pdf.BaseFont.createFont(BaseFont.java:360) at com.lowagie.text.pdf.BaseFont.createFont(BaseFont.java:332) at com.lowagie.text.Font.getCalculatedBaseFont(Font.java:718) at com.lowagie.text.pdf.PdfChunk.<init>(PdfChunk.java:203) at com.lowagie.text.pdf.PdfDocument.add(PdfDocument.java:1328) at com.lowagie.text.Phrase.process(Phrase.java:299) at com.lowagie.text.pdf.PdfDocument.add(PdfDocument.java:1478) at com.lowagie.text.pdf.PdfDocument.initPage(PdfDocument.java:1935) at com.lowagie.text.pdf.PdfDocument.newPage(PdfDocument.java:812) at com.lowagie.text.pdf.PdfDocument.carriageReturn(PdfDocument.java:2071) at com.lowagie.text.pdf.PdfDocument.add(PdfDocument.java:1333) at com.lowagie.text.Phrase.process(Phrase.java:299) at com.lowagie.text.pdf.PdfDocument.add(PdfDocument.java:1478) at com.lowagie.text.pdf.PdfDocument.initPage(PdfDocument.java:1935) at com.lowagie.text.pdf.PdfDocument.newPage(PdfDocument.java:812) at com.lowagie.text.pdf.PdfDocument.carriageReturn(PdfDocument.java:2071) at com.lowagie.text.pdf.PdfDocument.add(PdfDocument.java:1333) at com.lowagie.text.Phrase.process(Phrase.java:299) and sequence loops until stack overflows... ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ iText-questions mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/itext-questions
