[OpenJDK 2D-Dev] JDK 9 RFR of JDK-8148914: BitDepth.java test fails

Phil Race philip.race at oracle.com
Mon Feb 15 21:58:49 UTC 2016


Assuming it works, this approach seems better.

-phil.

On 02/15/2016 11:39 AM, Brian Burkhalter wrote:
> Hi Joe,
>
> Might it not be better to modify testWriteRGB() to do something like 
> this (code neither compiled nor tested):
>
> ImageTypeSpecifier spec = new ImageTypeSpecifier(bi);
> Iterator<ImageWriter> writers = ImageIO.getImageWriters(spec, 
> format).next();
> File file = new File("BitDepth_" + biTypeNames[type] + "." + format);
> if (!writers.hasNext()) {
>     System.out.println(“No writers available for type “ + 
> biTypeNames[type]
>                        + " BufferedImage!");
> } else {
>     ImageWriter writer = writers.next();
> try (ImageOutputStream out = ImageIO.createImageOutputStream(file)) {
> writer.setOutput(out);
> writer.write(bi);
> } catch (Exception e) {
> System.out.println("Can't write a type “ + biTypeNames[type]
>    + " BufferedImage!");
> }
> }
>
> return file;
>
> Thanks,
>
> Brian
>
> On Feb 15, 2016, at 9:35 AM, joe darcy <joe.darcy at oracle.com 
> <mailto:joe.darcy at oracle.com>> wrote:
>
>> Any comments on this?
>>
>> Thanks,
>>
>> -Joe
>>
>> On 2/11/2016 6:00 PM, joe darcy wrote:
>>> Hello,
>>>
>>> Please review a candidate fix for
>>>
>>>    JDK-8148914: BitDepth.java test fails
>>>
>>> In brief, OpenJDK supports two fewer buffered image formats for jpg 
>>> than the closed JDK does. I've modified the BitDepth test to allow 
>>> for this difference. Patch below; webrev at
>>>
>>> http://cr.openjdk.java.net/~darcy/8148914.0/ 
>>> <http://cr.openjdk.java.net/%7Edarcy/8148914.0/>
>>>
>>> Thanks,
>>>
>>> -Joe
>>>
>>> --- a/test/javax/imageio/plugins/shared/BitDepth.java    Thu Feb 11 
>>> 16:24:55 2016 -0800
>>> +++ b/test/javax/imageio/plugins/shared/BitDepth.java    Thu Feb 11 
>>> 17:26:23 2016 -0800
>>> @@ -130,11 +130,7 @@
>>>
>>>         boolean allOK = true;
>>>
>>> -        for (int i = 0; i < biRGBTypes.length; i++) {
>>> -
>>> -            int type = biRGBTypes[i];
>>> -
>>> -
>>> +        for (int type : biRGBTypes) {
>>>             // TODO: remove the following 'if' block after the 
>>> 8147448 fix
>>>             if ( format.toLowerCase().equals("bmp") && (
>>>                 (type == BufferedImage.TYPE_INT_ARGB       ) ||
>>> @@ -151,12 +147,23 @@
>>>
>>>             System.out.println("Testing " + format +
>>>                                " writer for type " + biTypeNames[type]);
>>> -            File f = testWriteRGB(format, type);
>>> -            boolean ok = testReadRGB(f);
>>> -            if (ok) {
>>> -                f.delete();
>>> +            boolean ok = false;
>>> +            File f = null;
>>> +            try {
>>> +                f = testWriteRGB(format, type);
>>> +                ok = testReadRGB(f);
>>> +            } catch (javax.imageio.IIOException e) {
>>> +                // The follow two formats are not supported on OpenJDK
>>> +                if (format.toLowerCase().equals("jpg") &&
>>> +                    (type == BufferedImage.TYPE_4BYTE_ABGR ||
>>> +                     type == BufferedImage.TYPE_4BYTE_ABGR_PRE))
>>> +                    continue;
>>> +            } finally {
>>> +                if (ok) {
>>> +                    f.delete();
>>> +                }
>>> +                allOK = allOK && (ok || f == null);
>>>             }
>>> -            allOK = allOK && ok;
>>>         }
>>>
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20160215/c761f78f/attachment.html>


More information about the 2d-dev mailing list