Java Advanced Imaging API 1.1.2-rc Known Bugs/Issues


Java Advanced Imaging API

FAQ | Interest Group

These are some of the known bugs for the current Java Advanced Imaging 1.1.2-rc release. They are not in any priority order and we do not promise that all will get fixed before the next release. If a bug listed below is affecting your work with the Java Advanced Imaging API, please let us know so we may assign it the proper priority.

To see which bugs have been fixed in JAI 1.1.2-rc, please refer to the README page.

To report a bug that is not on this list, please see the Bug Report instructions.

Java Advanced Imaging API Reference Port Bugs

These bugs are due to code within JAI itself.

Core Bugs

  • Unregistering an image factory may indirectly cause an exception if the mode against which the image factory is registered supports preferences among image factories. The exception would not occur until an operation node was created for the operation in question.
  • Some FlashPix images acquired over IIP may have incorrect color component mapping.
  • RasterAccessor.findCompatibleTags() incorrect for bilevel destination and non-bilevel source(s).
  • Using interpolation types other than nearest neighbor may cause the "Crop" operation to fail in renderable mode with an IllegalArgumentException with the message "The rectangular crop area must not be outside the image".
  • InterpolationBilinear may cause overflow for integer data type.
  • OperationNodes do not react to RenderingChangeEvents emitted by operation parameters.
  • Image created by RenderableOp.createScaledRendering() in some cases does not have the requested dimensions due to roundoff error.
Operator Bugs
  • "SubsampleBinaryToGray" operation gives incorrect results if xScale*yScale <&nbsp;1.0/256.0. This is due to the required number of gray levels overflowing the range of the destination data type which is at present specified to be byte.
  • "Composite" operation does not set the alpha premultiplied flag correctly when the alphaPremultiplied parameter is true.
  • Using a bilinear interpolation hint in renderable mode "crop" may cause an ArrayOutOfBoundsException.
  • Renderable "Composite" operation does not work with Remote Imaging
  • For "SubsampleAverage" with certain scale factors, the native implementation may produce an image with an incorrect right edge.
Remote Imaging Bugs
  • Re-serializing a deserialized SerializableRenderedImage provokes a NullPointerException.
Codec Bugs
  • The JAI JPEG decoder cannot process abbreviated streams. The JAI JPEG codec currently supports creating abbreviated streams, both tables-only and image-only, but there is no way to read these streams back in. The code always wants to create an image from the stream, even when its a tables-only stream. The workaround is to use the com.sun.image.codec.jpeg JPEG decoder directly.
  • The BMP decoder has been observed to throw an ArrayIndexOutOfBoundsException for certain input images which are compressed using RLE4 compression.
  • Attempting to load some FlashPix images may result in an ArrayIndexOutOfBoundsException being thrown.

Java 2D Bugs Affecting the Java Advanced Imaging API

These are known Java 2D bugs which may cause problems using JAI or be manifested via JAI.

  • The isCompatibleSampleModel() method in java.awt.image.ComponentColorModel manifests different bugs in different versions of Sun Microsystems' J2SE. In J2SE 1.2 it returns false if the SampleModel is a ComponentSampleModel which is the opposite of what it should do. This renders J2SE 1.2* unusable with JAI 1.1 or greater. In J2SE 1.3, it does not verify that the number of SampleModel bands matches the number of ColorModel components. This latter problem has been fixed in J2SE 1.4.

Additional Problems/Limitations of Note

These are items which are not bugs per se. Some of this information is duplicated from the README page.


  • TIFF Codec

    Java Advanced Imaging 1.1.2-rc TIFF codec supports a large portion of the TIFF specification including baseline TIFF and several extensions. The implementation does however have the following limitations:

    • The TIFF encoder does not support LZW compression for the usual reason.
    • Planar format (PlanarConfiguration field has value 2) is not supported for decoding or encoding.
  • BMP Codec
    • Only the default RGB color space is supported.
    • Alpha channels are not supported by the BMP encoder.
    • The BMP encoder supports only version 3, i.e., does not support versions 2 or 4. This is despite the fact that the desired version number may be set via BMPEncodeParam.setVersion() and that BMPEncodeParam defines the constants VERSION_2 and VERSION_4.


  • Solaris

    Automatic installation does not work with Java Plug-In versions prior to 1.3.1.

Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve
JavaOne Banner
Java 8 banner (182)