Author: ssteiner
Date: Mon Feb 29 13:34:56 2016
New Revision: 1732894
URL: http://svn.apache.org/viewvc?rev=1732894&view=rev
Log:
FOP-2585: PDF to PDF StackOverflowError
Added:
xmlgraphics/fop-pdf-images/trunk/test/resources/loop.pdf (with props)
Modified:
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
Modified:
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java?rev=1732894&r1=1732893&r2=1732894&view=diff
==============================================================================
---
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
(original)
+++
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
Mon Feb 29 13:34:56 2016
@@ -287,7 +287,7 @@ public class PDFBoxAdapter {
return cloned;
}
PDFObject pdfobj = (PDFObject) cloned;
- if (!pdfobj.hasObjectNumber()) {
+ if (pdfobj != null && !pdfobj.hasObjectNumber() && !(base instanceof
COSDictionary)) {
pdfDoc.registerObject(pdfobj);
if (log.isTraceEnabled()) {
log.trace(key + ": " + pdfobj.getClass().getName() + "
registered as "
@@ -302,6 +302,8 @@ public class PDFBoxAdapter {
if (base instanceof COSObject) {
COSObject obj = (COSObject)base;
return obj.getObjectNumber().intValue() + " " +
obj.getGenerationNumber().intValue();
+ } else if (base instanceof COSDictionary) {
+ return base;
} else {
return null;
}
Modified:
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java?rev=1732894&r1=1732893&r2=1732894&view=diff
==============================================================================
---
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
(original)
+++
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
Mon Feb 29 13:34:56 2016
@@ -119,6 +119,7 @@ public class PDFBoxAdapterTestCase {
private static final String IMAGE = "test/resources/image.pdf";
private static final String HELLOTagged = "test/resources/taggedWorld.pdf";
private static final String XFORM = "test/resources/xform.pdf";
+ private static final String LOOP = "test/resources/loop.pdf";
private PDFBoxAdapter getPDFBoxAdapter() {
PDFDocument doc = new PDFDocument("");
@@ -396,6 +397,50 @@ public class PDFBoxAdapterTestCase {
ByteArrayOutputStream stream = pdfToPS(IMAGE);
Assert.assertTrue(stream.toString("UTF-8"),
stream.toString("UTF-8").contains("%%IncludeResource: form
FOPForm:0\nFOPForm:0 execform"));
+
+ pdfToPS(CFF1);
+ pdfToPS(CFF2);
+ pdfToPS(CFF3);
+ pdfToPS(TTCID1);
+ pdfToPS(TTCID2);
+ pdfToPS(TTSubset1);
+ pdfToPS(TTSubset2);
+ pdfToPS(TTSubset3);
+ pdfToPS(TTSubset5);
+ pdfToPS(CFFCID1);
+ pdfToPS(CFFCID2);
+ pdfToPS(Type1Subset1);
+ pdfToPS(Type1Subset2);
+ pdfToPS(Type1Subset3);
+ pdfToPS(Type1Subset4);
+ pdfToPS(ROTATE);
+ pdfToPS(LINK);
+ pdfToPS(LOOP);
+ }
+
+ @Test
+ public void testPDFToPDF() throws IOException {
+ FontInfo fi = new FontInfo();
+ writeText(fi, CFF1);
+ writeText(fi, CFF2);
+ writeText(fi, CFF3);
+ writeText(fi, CFFCID1);
+ writeText(fi, CFFCID2);
+ writeText(fi, IMAGE);
+ writeText(fi, LINK);
+ writeText(fi, ROTATE);
+ writeText(fi, SHADING);
+ writeText(fi, TTCID1);
+ writeText(fi, TTCID2);
+ writeText(fi, TTSubset1);
+ writeText(fi, TTSubset2);
+ writeText(fi, TTSubset3);
+ writeText(fi, TTSubset5);
+ writeText(fi, Type1Subset1);
+ writeText(fi, Type1Subset2);
+ writeText(fi, Type1Subset3);
+ writeText(fi, Type1Subset4);
+ writeText(fi, LOOP);
}
private ByteArrayOutputStream pdfToPS(String pdf) throws IOException,
ImageException {
Added: xmlgraphics/fop-pdf-images/trunk/test/resources/loop.pdf
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/resources/loop.pdf?rev=1732894&view=auto
==============================================================================
Binary file - no diff available.
Propchange: xmlgraphics/fop-pdf-images/trunk/test/resources/loop.pdf
------------------------------------------------------------------------------
svn:executable = *
Propchange: xmlgraphics/fop-pdf-images/trunk/test/resources/loop.pdf
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]