Sample_Hang.pdf (243.2 KB)
Sample_StackOverflow.pdf (88.9 KB)
Aspose Team,
We use the Aspose PDF java package to get the color types of PDF files. However, the Page.getColorType method hangs or throws StackOverflowErrorm (see below) with some PDF files.
Exception in thread “main” java.lang.StackOverflowError
at sun.java2d.loops.Blit.Blit(Native Method)
at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:959)
at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:577)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:67)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1014)
at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:186)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3320)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3298)
at com.aspose.pdf.internal.l52n.l1v.lI(Unknown Source)
at com.aspose.pdf.internal.l52n.l1v.lI(Unknown Source)
at com.aspose.pdf.internal.l52n.l1v.lI(Unknown Source)
at com.aspose.pdf.internal.l11l.ld.(Unknown Source)
at com.aspose.pdf.internal.l6if.lf.lI(Unknown Source)
at com.aspose.pdf.internal.l3n.lI.lI(Unknown Source)
at com.aspose.pdf.internal.l3n.lI.lI(Unknown Source)
at com.aspose.pdf.internal.l1y.ld.lI(Unknown Source)
at com.aspose.pdf.XImage.saveInternal(Unknown Source)
at com.aspose.pdf.XImage.lI(Unknown Source)
at com.aspose.pdf.XImage.lI(Unknown Source)
at com.aspose.pdf.XImage.getColorType(Unknown Source)
at com.aspose.pdf.internal.l9k.lf.lI(Unknown Source)
at com.aspose.pdf.internal.l9k.lf.lI(Unknown Source)
…
Following is the sample code that reproduces the problem and attached are two sample files (one for hang and one for StackOverflowError). The operating system is Ubuntu 18.04. Java version is 1.8 and Aspose PDF java package is 20.8.
import com.aspose.pdf.Document;
import com.aspose.pdf.Page;
public class GetColorType {
public static void main(String[] args) {
System.out.println(“Start”);
try {
String path = “/home/ubuntu/testdir_colortype/Sample_Hang.pdf”;
com.aspose.pdf.Document pdfDoc = new Document(path);
Page page = pdfDoc.getPages().get_Item(1);
int colotType = page.getColorType();
System.out.println("colotType = " + colotType);
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(“Done”);
}
}