harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Zakharov (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-2689) [classlib][awt] java.awt.image.RescaleOp.getOffsets() throws unexpected IAE if an array has zero legth size.
Date Thu, 21 Dec 2006 10:10:22 GMT
     [ http://issues.apache.org/jira/browse/HARMONY-2689?page=all ]

Alexei Zakharov updated HARMONY-2689:
-------------------------------------

    Patch Info: [Patch Available]

> [classlib][awt] java.awt.image.RescaleOp.getOffsets() throws unexpected IAE if an array
has zero legth size.
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2689
>                 URL: http://issues.apache.org/jira/browse/HARMONY-2689
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Ilya Okomin
>            Priority: Minor
>         Attachments: RescaleOp2689.patch, RescaleOp2689Test.patch
>
>
> There is no mention about any exception in the specification.
> Harmony throws IAE for RescaleOp.getOffsets(float[] offsets) if offsets is empty array
while RI returns empty array.
> The same problem is for getScaleFactors(float[] scaleFactors) method.
> -------------- test.java -----------------
> import java.awt.image.*;
> import junit.framework.TestCase;
> import java.awt.*;
> public class test extends TestCase {
>     public void testcase1() {                                  
>         RescaleOp res = new RescaleOp(new float[1],new float[2],null);         
> assertEquals(res.getOffsets(new float[] {}).length, 0);                         
>     }
>     public void testcase2() {                           
>         RescaleOp res = new RescaleOp(new float[1],new float[2],null);         
> assertEquals(res.getScaleFactors(new float[] {}).length, 0);                    
>     }                                                                        
> }
> --------------------------------------
> Output on RI
> =================
> ..
> Time: 0
> OK (2 tests)
> Output on Harmony_drlvm/j9:
> ===========================
> .E.E
> Time: 0
> There were 2 errors:
> 1) testcase1(test)java.lang.ArrayIndexOutOfBoundsException
>         at java.lang.System.arraycopy(System.java:249)
>         at java.awt.image.RescaleOp.getOffsets(RescaleOp.java:92)
>         at test.testcase1(test.java:8)
>         at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)
> 2) testcase2(test)java.lang.ArrayIndexOutOfBoundsException
>         at java.lang.System.arraycopy(System.java:249)
>         at java.awt.image.RescaleOp.getScaleFactors(RescaleOp.java:83)
>         at test.testcase2(test.java:12)
>         at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)
> FAILURES!!!
> Tests run: 2,  Failures: 0,  Errors: 2
> This issue can be treated as non-bug difference, because it is unclear what is the appropriate
result if sizes of given array and sizes of offsets and scaleFactors arrays in RescaleOp object
are different. Otherwise, to be compatible with RI I can suggest to use min between argument
array and RescaleOp object's array length as length param in j.l.System.arraycopy() call.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message