You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Andrey Pavlenko (JIRA)" <ji...@apache.org> on 2007/02/19 09:49:05 UTC

[jira] Commented: (HARMONY-1655) [classlib][awt] BufferedImage constructor throws different exceptions on RI and Harmony

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

Andrey Pavlenko commented on HARMONY-1655:
------------------------------------------

The link is broken, use this one instead http://mail-archives.apache.org/mod_mbox/harmony-dev/200610.mbox/%3c834b3bd50610020451x2956f5c7i7e9e1b39aee7a2a6@mail.gmail.com%3e

> [classlib][awt] BufferedImage constructor throws different exceptions on RI and Harmony
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-1655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-1655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Non-bug differences from RI
>            Reporter: Denis Kishenko
>
> Constructor of BufferedImage throws different exceptions on RI and Harmony if width or height is negative. Type of exception depends on BufferedImage type parameter. There are 13 different types exist. Results are listed below.
> 1-4 IllegalArgumentException both
> 5-7 RI - NegativeArraySizeException, Harmony - RasterFormatException
> 8-9 IllegalArgumentException both
> 10-11 RI - NegativeArraySizeException, Harmony - IllegalArgumentException
> 12-13 RI - NegativeArraySizeException, Harmony - RasterFormatException
> I think this is non-bug difference because of
> 5-7 and 12-13: As you see from stack trace both implementations call Raster.createInterleavedRaster(...)
> Spec says
>   Throws: 
>        RasterFormatException - if w or h is less than or equal to zero, or computing either location.x + w or location.y + h results in integer overflow 
> So RI doesn't folow spec while Harmony does.
> 10-11: For RI the same situation as listed above while Harmony just has another implementation and exception order. 
> In all cases it's more logical to throw IllegalArgumentException or RasterFormatException instead of NegativeArraySizeException.
> =========== Test  ==========
> import java.awt.image.*;
> public class Test {
>    public static void main(String[] argv) {
>        for(int i = 1; i < 14; i++) {
>            try {
>                System.err.println(i);
>                new BufferedImage(8, -7, i);
>            } catch (Exception e) {
>                e.printStackTrace();
>            }
>        }
>    }
> }
> =========== RI ==============
> 1
> java.lang.IllegalArgumentException: Width (8) and height (-7) cannot be <= 0
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:314)
>     at Test.main(Test.java:8)
> 2
> java.lang.IllegalArgumentException: Width (8) and height (-7) cannot be <= 0
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:323)
>     at Test.main(Test.java:8)
> 3
> java.lang.IllegalArgumentException: Width (8) and height (-7) cannot be <= 0
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:342)
>     at Test.main(Test.java:8)
> 4
> java.lang.IllegalArgumentException: Width (8) and height (-7) cannot be <= 0
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:354)
>     at Test.main(Test.java:8)
> 5
> java.lang.NegativeArraySizeException: Negative size-168
>     at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:42)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:253)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:367)
>     at Test.main(Test.java:8)
> 6
> java.lang.NegativeArraySizeException: Negative size-224
>     at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:42)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:253)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:382)
>     at Test.main(Test.java:8)
> 7
> java.lang.NegativeArraySizeException: Negative size-224
>     at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:42)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:253)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:397)
>     at Test.main(Test.java:8)
> 8
> java.lang.IllegalArgumentException: Width (8) and height (-7) cannot be <= 0
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:474)
>     at Test.main(Test.java:8)
> 9
> java.lang.IllegalArgumentException: Width (8) and height (-7) cannot be <= 0
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:486)
>     at Test.main(Test.java:8)
> 10
> java.lang.NegativeArraySizeException: Negative size-56
>     at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:42)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:253)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:194)
>     at java.awt.image.ComponentColorModel.createCompatibleWritableRaster(ComponentColorModel.java:2808)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:411)
>     at Test.main(Test.java:8)
> 11
> java.lang.NegativeArraySizeException: Negative size-56
>     at java.awt.image.DataBufferUShort.<init>(DataBufferUShort.java:43)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:257)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:194)
>     at java.awt.image.ComponentColorModel.createCompatibleWritableRaster(ComponentColorModel.java:2808)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:423)
>     at Test.main(Test.java:8)
> 12
> java.lang.NegativeArraySizeException: Negative size-7
>     at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:42)
>     at java.awt.image.Raster.createPackedRaster(Raster.java:566)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:433)
>     at Test.main(Test.java:8)
> 13
> java.lang.NegativeArraySizeException: Negative size-56
>     at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:42)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:253)
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:194)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:462)
>     at Test.main(Test.java:8)
> ============ Harmony ================
> 1
> java.lang.IllegalArgumentException: w or h is less than or equal to zero
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:518)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:188)
> 2
> java.lang.IllegalArgumentException: w or h is less than or equal to zero
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:518)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:193)
> 3
> java.lang.IllegalArgumentException: w or h is less than or equal to zero
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:518)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:207)
> 4
> java.lang.IllegalArgumentException: w or h is less than or equal to zero
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:518)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:216)
> 5
> java.awt.image.RasterFormatException: w or h is less than or equal to zero
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:242)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:231)
> 6
> java.awt.image.RasterFormatException: w or h is less than or equal to zero
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:242)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:247)
> 7
> java.awt.image.RasterFormatException: w or h is less than or equal to zero
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:242)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:262)
> 8
> java.lang.IllegalArgumentException: w or h is less than or equal to zero
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:518)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:277)
> 9
> java.lang.IllegalArgumentException: w or h is less than or equal to zero
>     at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:518)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:291)
> 10
> java.lang.IllegalArgumentException: Width or Height is not greater than 0
>     at java.awt.image.SampleModel.<init>(SampleModel.java:34)
>     at java.awt.image.ComponentSampleModel.<init>(ComponentSampleModel.java:79)
>     at java.awt.image.PixelInterleavedSampleModel.<init>(PixelInterleavedSampleModel.java:27)
>     at java.awt.image.ComponentColorModel.createCompatibleSampleModel(ComponentColorModel.java:964)
>     at java.awt.image.ComponentColorModel.createCompatibleWritableRaster(ComponentColorModel.java:935)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:304)
> 11
> java.lang.IllegalArgumentException: Width or Height is not greater than 0
>     at java.awt.image.SampleModel.<init>(SampleModel.java:34)
>     at java.awt.image.ComponentSampleModel.<init>(ComponentSampleModel.java:79)
>     at java.awt.image.PixelInterleavedSampleModel.<init>(PixelInterleavedSampleModel.java:27)
>     at java.awt.image.ComponentColorModel.createCompatibleSampleModel(ComponentColorModel.java:964)
>     at java.awt.image.ComponentColorModel.createCompatibleWritableRaster(ComponentColorModel.java:935)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:317)
> 12
> java.awt.image.RasterFormatException: w or h is less than or equal to zero
>     at java.awt.image.Raster.createPackedRaster(Raster.java:410)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:327)
> 13
> java.awt.image.RasterFormatException: w or h is less than or equal to zero
>     at java.awt.image.Raster.createInterleavedRaster(Raster.java:292)
>     at java.awt.image.BufferedImage.<init>(BufferedImage.java:350)

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