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.da...@oracle.com <mailto:joe.da...@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;
        }





Reply via email to