Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 4.3.2
-
Fix Version/s: 4.3.3
-
Component/s: Core/Parsing
-
Labels:None
-
Environment:All
Description
The following exceptions are thrown when loading a PDF:
FINE: Error building image raster.
java.lang.IllegalArgumentException: Width (2480) and height (0) must be > 0
at java.awt.image.SampleModel.<init>(SampleModel.java:108)
at java.awt.image.MultiPixelPackedSampleModel.<init>(MultiPixelPackedSampleModel.java:129)
at java.awt.image.MultiPixelPackedSampleModel.<init>(MultiPixelPackedSampleModel.java:89)
at java.awt.image.Raster.createPackedRaster(Raster.java:843)
at org.icepdf.core.pobjects.Stream.makeImageWithRasterFromBytes(Stream.java:2492)
at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2387)
at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2250)
at org.icepdf.core.pobjects.Resources.getImage(Resources.java:246)
at org.icepdf.core.util.ContentParser.consume_Do(ContentParser.java:1980)
at org.icepdf.core.util.ContentParser.parse(ContentParser.java:373)
at org.icepdf.core.pobjects.Page.init(Page.java:372)
at org.icepdf.core.views.swing.PageViewComponentImpl$PageInitilizer.run(PageViewComponentImpl.java:1072)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
14-May-2012 10:34:26 AM org.icepdf.core.pobjects.Resources getImage
FINE: Error getting image by name: Im0
java.lang.IllegalArgumentException: Width (2480) and height (0) cannot be <= 0
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
at java.awt.image.BufferedImage.<init>(BufferedImage.java:321)
at org.icepdf.core.pobjects.Stream.parseImage(Stream.java:2751)
at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2411)
at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2250)
at org.icepdf.core.pobjects.Resources.getImage(Resources.java:246)
at org.icepdf.core.util.ContentParser.consume_Do(ContentParser.java:1980)
at org.icepdf.core.util.ContentParser.parse(ContentParser.java:373)
at org.icepdf.core.pobjects.Page.init(Page.java:372)
at org.icepdf.core.views.swing.PageViewComponentImpl$PageInitilizer.run(PageViewComponentImpl.java:1072)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
FINE: Error building image raster.
java.lang.IllegalArgumentException: Width (2480) and height (0) must be > 0
at java.awt.image.SampleModel.<init>(SampleModel.java:108)
at java.awt.image.MultiPixelPackedSampleModel.<init>(MultiPixelPackedSampleModel.java:129)
at java.awt.image.MultiPixelPackedSampleModel.<init>(MultiPixelPackedSampleModel.java:89)
at java.awt.image.Raster.createPackedRaster(Raster.java:843)
at org.icepdf.core.pobjects.Stream.makeImageWithRasterFromBytes(Stream.java:2492)
at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2387)
at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2250)
at org.icepdf.core.pobjects.Resources.getImage(Resources.java:246)
at org.icepdf.core.util.ContentParser.consume_Do(ContentParser.java:1980)
at org.icepdf.core.util.ContentParser.parse(ContentParser.java:373)
at org.icepdf.core.pobjects.Page.init(Page.java:372)
at org.icepdf.core.views.swing.PageViewComponentImpl$PageInitilizer.run(PageViewComponentImpl.java:1072)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
14-May-2012 10:34:26 AM org.icepdf.core.pobjects.Resources getImage
FINE: Error getting image by name: Im0
java.lang.IllegalArgumentException: Width (2480) and height (0) cannot be <= 0
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
at java.awt.image.BufferedImage.<init>(BufferedImage.java:321)
at org.icepdf.core.pobjects.Stream.parseImage(Stream.java:2751)
at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2411)
at org.icepdf.core.pobjects.Stream.getImage(Stream.java:2250)
at org.icepdf.core.pobjects.Resources.getImage(Resources.java:246)
at org.icepdf.core.util.ContentParser.consume_Do(ContentParser.java:1980)
at org.icepdf.core.util.ContentParser.parse(ContentParser.java:373)
at org.icepdf.core.pobjects.Page.init(Page.java:372)
at org.icepdf.core.views.swing.PageViewComponentImpl$PageInitilizer.run(PageViewComponentImpl.java:1072)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
There isn't much we can do at this time as the height for CCITTFax decode is extremely important for proper decode. If I set-up the height = width, most of the Image becomes visible. The PDF in this case is malformed, and is missing content for the object references 9 and 19. If the PDF is part of a creation process then it would be best to addresses why the height reference is not being written.
The only other possibility here is to look more closely at the CCITTFax specification see if there is any header data that can be read to determine the image height.