harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vasily Zakharov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4749) [classlib][awt][image] GifDecoder throws ArrayIndexOutOfBoundsException
Date Thu, 06 Sep 2007 01:31:34 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-4749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12525272
] 

Vasily Zakharov commented on HARMONY-4749:
------------------------------------------

Rather interesting is if exception is caught at OffscreenImage.setPixels(), the image is displayed
correctly on IBM VME. The crash on DRLVM occurs anyway.

The call to System.arraycopy() causing the problem is:
System.arraycopy(byte[256], 256, byte[256], 256, 16);

Reproducing this situation separately doesn't cause a crash on DRLVM.


> [classlib][awt][image] GifDecoder throws ArrayIndexOutOfBoundsException
> -----------------------------------------------------------------------
>
>                 Key: HARMONY-4749
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4749
>             Project: Harmony
>          Issue Type: Bug
>          Components: App-Oriented Bug Reports, Classlib
>            Reporter: Vasily Zakharov
>         Attachments: DRLVM.jpg, IBMVME.jpg, RI.jpg, triangle-rt.gif
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message