Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-4749

[classlib][awt][image] GifDecoder throws ArrayIndexOutOfBoundsException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      On some files, GifDecoder throws ArrayIndexOutOfBoundsException. Here's the reproducer:

      import javax.swing.JFrame;
      import javax.swing.JEditorPane;
      public class Test {
      public static void main(String argv[]) {
      try

      { JFrame frame = new JFrame("Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(100, 100); frame.add(new JEditorPane("text/html", "<img src=\"file:triangle-rt.gif\">")); frame.setVisible(true); }

      catch (Throwable e)

      { e.printStackTrace(System.out); }

      }
      }

      Output on Harmony/IBM VME:

      java.lang.ArrayIndexOutOfBoundsException
      at java.lang.System.arraycopy(System.java:327)
      at java.lang.System.arraycopy(System.java:237)
      at org.apache.harmony.awt.gl.image.OffscreenImage.setPixels(OffscreenImage.java:286)
      at org.apache.harmony.awt.gl.image.ImageDecoder.setPixels(ImageDecoder.java:180)
      at org.apache.harmony.awt.gl.image.GifDecoder$GifGraphicBlock.sendNewData(GifDecoder.java:446)
      at org.apache.harmony.awt.gl.image.GifDecoder.decodeImage(GifDecoder.java:221)
      at org.apache.harmony.awt.gl.image.DecodingImageSource.load(DecodingImageSource.java:252)
      at org.apache.harmony.awt.gl.image.ImageLoader.run(ImageLoader.java:153)

      Also, the exception causes an image placeholder to be displayed instead of the image (see attached screenshots).

      On DRLVM (both Jit and Interpreter), the same test crashes instead of throwing exception (see attached screenshot, clicking Retry - Debug doesn't provide any detail). As the crash occurs in exactly the same local situation, I suppose the problem is not in DRLVM but in classlib indeed. If investigation proves otherwise - a separate issue would have to be filed.

      The test file triggering the bug is triangle-rt.gif file from Abbot package (http://abbot.sourceforge.net). This file is attached here purely for purpose of reproducing and localizing the bug, and as Abbot is CPL, I suppose this file must not be included into Harmony in any form.

      The problem was discovered while trying to run Abbot Costello on Harmony.

      Attachments

        1. triangle-rt.gif
          0.1 kB
          Vasily Zakharov
        2. RI.jpg
          4 kB
          Vasily Zakharov
        3. IBMVME.jpg
          4 kB
          Vasily Zakharov
        4. DRLVM.jpg
          22 kB
          Vasily Zakharov

        Activity

          People

            Unassigned Unassigned
            vmz Vasily Zakharov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: