opyate
opyate

Reputation: 5428

PDFBox throws writeImage error when building on OpenJDK

I'm building this version of PDFBox on Ubuntu with this version of OpenJDK:

java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

I get the following exception when running the tests:

javax.imageio.IIOException: Invalid argument to native writeImage

Expanded:

-------------------------------------------------------------------------------
Test set: org.apache.pdfbox.pdmodel.graphics.image.JPEGFactoryTest
-------------------------------------------------------------------------------
Tests run: 6, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.804 sec <<< FAILURE! - in org.apache.pdfbox.pdmodel.graphics.image.JPEGFactoryTest
testCreateFromImageINT_ARGB(org.apache.pdfbox.pdmodel.graphics.image.JPEGFactoryTest)  Time elapsed: 0.387 sec  <<< ERROR!
javax.imageio.IIOException: Invalid argument to native writeImage
        at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native Method)
        at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:1058)
        at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:360)
        at javax.imageio.ImageWriter.write(ImageWriter.java:615)
        at javax.imageio.ImageIO.doWrite(ImageIO.java:1612)
        at javax.imageio.ImageIO.write(ImageIO.java:1578)
        at org.apache.pdfbox.pdmodel.graphics.image.ValidateXImage.validate(ValidateXImage.java:63)
        at org.apache.pdfbox.pdmodel.graphics.image.JPEGFactoryTest.testCreateFromImageINT_ARGB(JPEGFactoryTest.java:141)

testCreateFromImage4BYTE_ABGR(org.apache.pdfbox.pdmodel.graphics.image.JPEGFactoryTest)  Time elapsed: 0.147 sec  <<< ERROR!
javax.imageio.IIOException: Invalid argument to native writeImage
        at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native Method)
        at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:1058)
        at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:360)
        at javax.imageio.ImageWriter.write(ImageWriter.java:615)
        at javax.imageio.ImageIO.doWrite(ImageIO.java:1612)
        at javax.imageio.ImageIO.write(ImageIO.java:1578)
        at org.apache.pdfbox.pdmodel.graphics.image.ValidateXImage.validate(ValidateXImage.java:63)
        at org.apache.pdfbox.pdmodel.graphics.image.JPEGFactoryTest.testCreateFromImage4BYTE_ABGR(JPEGFactoryTest.java:182)

Searching the archives hasn't shed light.

Upvotes: 0

Views: 1422

Answers (1)

opyate
opyate

Reputation: 5428

Apparently, OpenJDK does not have a native JPEG encoder. Get an Oracle JDK, and try building with the following command:

JAVA_HOME="/path/to/oracle/jdk" mvn clean compile

Upvotes: 1

Related Questions