On Tue, 4 Mar 2025 06:51:54 GMT, Jeremy Wood <[email protected]> wrote:
> Previously ImageTypeSpecifier treated all TYPE_BYTE_INDEXED as if they were
> opaque.
>
> In this ticket's case: an ImageWriter received the wrong ImageTypeSpecifier
> and mistakenly indicated it *could* support a BufferedImage. But when the
> actual BufferedImage arrived (which was translucent), the ImageWriter threw
> an exception.
>
> Instead:
> Now the ImageTypeSpecifier accurately describes the given BufferedImage.
src/java.desktop/share/classes/javax/imageio/ImageTypeSpecifier.java line 1:
> 1: /*
Could you bump the copyright year?
src/java.desktop/share/classes/javax/imageio/ImageTypeSpecifier.java line 923:
> 921: int bufferedImageType = ((BufferedImage)image).getType();
> 922: if (bufferedImageType != BufferedImage.TYPE_CUSTOM &&
> 923: bufferedImageType != BufferedImage.TYPE_BYTE_INDEXED) {
Suggestion:
if (bufferedImageType != BufferedImage.TYPE_CUSTOM &&
bufferedImageType != BufferedImage.TYPE_BYTE_INDEXED) {
Usually, 8-space indentation used for wrapped continuation lines, if the
wrapped isn't aligned to a structure on the first line.
Personally, I'd move the `&&` operator to the wrapped line — it clearly
indicates it's a continuation. Yet neither style has been agreed upon.
test/jdk/javax/imageio/plugins/jpeg/JpegWriterWriteNonOpaqueIndexColorModelTest.java
line 33:
> 31:
> 32: import javax.imageio.ImageIO;
> 33: import java.awt.*;
Could you expand the wildcard imports?
test/jdk/javax/imageio/plugins/jpeg/JpegWriterWriteNonOpaqueIndexColorModelTest.java
line 63:
> 61: }
> 62: if (imageType == Transparency.BITMASK)
> 63: alpha[0] = 0;
Suggestion:
if (imageType == Transparency.BITMASK) {
alpha[0] = 0;
}
It's recommended to always use braces even when there's only one statement in
the block.
test/jdk/javax/imageio/plugins/jpeg/JpegWriterWriteNonOpaqueIndexColorModelTest.java
line 74:
> 72: boolean result = ImageIO.write(bi, "jpg", new
> ByteArrayOutputStream());
> 73: if (result != expectedWriteReturnValue)
> 74: throw new Error("ImageIO.write(..) returned " + result +
> " but we expected " + expectedWriteReturnValue);
Suggestion:
if (result != expectedWriteReturnValue) {
throw new Error("ImageIO.write(..) returned " + result + " but
we expected " + expectedWriteReturnValue);
}
test/jdk/javax/imageio/plugins/jpeg/JpegWriterWriteNonOpaqueIndexColorModelTest.java
line 77:
> 75: System.out.println("Tested passed");
> 76: return true;
> 77: } catch(Exception e) {
Suggestion:
} catch (Exception e) {
test/jdk/javax/imageio/plugins/jpeg/JpegWriterWriteNonOpaqueIndexColorModelTest.java
line 81:
> 79: e.printStackTrace();
> 80: return false;
> 81: }
Should an exception be allowed to escape? You throw an `Error` if the expected
return value doesn't match.
test/jdk/javax/imageio/plugins/jpeg/JpegWriterWriteNonOpaqueIndexColorModelTest.java
line 83:
> 81: }
> 82: }
> 83: }
Having a blank line in the end of a file is preferred.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23884#discussion_r1987265582
PR Review Comment: https://git.openjdk.org/jdk/pull/23884#discussion_r1987265134
PR Review Comment: https://git.openjdk.org/jdk/pull/23884#discussion_r1987268179
PR Review Comment: https://git.openjdk.org/jdk/pull/23884#discussion_r1987271648
PR Review Comment: https://git.openjdk.org/jdk/pull/23884#discussion_r1987275369
PR Review Comment: https://git.openjdk.org/jdk/pull/23884#discussion_r1987276141
PR Review Comment: https://git.openjdk.org/jdk/pull/23884#discussion_r1987278113
PR Review Comment: https://git.openjdk.org/jdk/pull/23884#discussion_r1987278977