harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Petrenko (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (HARMONY-1655) [classlib][awt] BufferedImage constructor throws different exceptions on RI and Harmony
Date Mon, 19 Feb 2007 13:30:06 GMT

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

Alexey Petrenko reassigned HARMONY-1655:
----------------------------------------

    Assignee: Alexey Petrenko

> [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
>         Assigned To: Alexey Petrenko
>
> 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.


Mime
View raw message