Bug#760926: libapache-poi-java: ftbfs with OpenJDK 8

Emmanuel Bourg ebourg at apache.org
Wed Oct 22 15:57:07 UTC 2014


The UnsatisfiedLinkError seems to indicate that the native initReaderIDs
method cannot be found.

This method should be exported by the libjavajpeg.so library installed
in the jre/lib/<arch>/ directory of the JDK.

Here are the JNI functions found in the libjavajpeg.so of openjdk-8:

ebourg at icare:~$ nm -D
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libjavajpeg.so | grep Java
0000000000001840 T Java_sun_awt_image_JPEGImageDecoder_initIDs
0000000000001930 T Java_sun_awt_image_JPEGImageDecoder_readImage

As a comparison, here are the functions found in the libjavajpeg.so of
openjdk-7:

ebourg at icare:~$ nm -D
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/libjavajpeg.so | grep Java
0000000000005b70 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_abortRead
0000000000005c80 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_disposeReader
0000000000004720 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initJPEGImageReader
0000000000004550 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initReaderIDs
0000000000005040 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImage
00000000000049e0 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImageHeader
0000000000005ba0 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetLibraryState
0000000000005bd0 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetReader
0000000000005010 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setOutColorSpace
0000000000004990 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setSource
0000000000007620 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_abortWrite
00000000000076b0 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_disposeWriter
0000000000005ef0 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initJPEGImageWriter
0000000000005db0 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initWriterIDs
0000000000007650 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_resetWriter
0000000000006150 T Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_setDest
0000000000006550 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage
00000000000061b0 T
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeTables
0000000000008030 T Java_sun_awt_image_JPEGImageDecoder_initIDs
0000000000008100 T Java_sun_awt_image_JPEGImageDecoder_readImage


So libjavajpeg.so in openjdk-8 is missing all the
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_* functions. They are
defined in imageioJPEG.c, I wonder how they came to disappear from the
compiled library.

ebourg at icare:~/openjdk8$ grep Java_
jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initReaderIDs
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_initJPEGImageReader
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setSource
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImageHeader
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_setOutColorSpace
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImage
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_abortRead
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetLibraryState
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_resetReader
Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_disposeReader
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initWriterIDs
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_initJPEGImageWriter
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_setDest
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeTables
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_writeImage
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_abortWrite
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_resetWriter
Java_com_sun_imageio_plugins_jpeg_JPEGImageWriter_disposeWriter

Emmanuel Bourg



More information about the pkg-java-maintainers mailing list