RFR: 8364135: JPEGImageReader.getImageTypes() should throw exception for negative image index [v3]
Jayathirth D V
jdv at openjdk.org
Tue Aug 26 05:52:36 UTC 2025
On Mon, 25 Aug 2025 14:12:05 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:
>> Jayathirth D V has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Update image index verification function name
>
> src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java line 848:
>
>> 846: public int getWidth(int imageIndex) throws IOException {
>> 847: verifyImageIndex(imageIndex);
>> 848: setThreadLock();
>
> I wonder whether accessing `minIndex` inside `verifyImageIndex` requires a lock.
That's a good thing to do.
I have updated code to call `verifyImageIndex()` within threadlock. Also we don't need to lock the thread for gotoImage()-> `verifyImageIndex()` as the call is reaching gotoImage() under a threadlock or callback lock.
> test/jdk/javax/imageio/plugins/jpeg/JpegNegativeImageIndexTest.java line 60:
>
>> 58: ImageTypeSpecifier specifier = ir.getRawImageType(-1);
>> 59: } catch (IndexOutOfBoundsException e) {
>> 60: if (Objects.equals(e.getMessage(), "imageIndex < 0")) {
>
> If we don't iterate over all readers but only the first one, throw the error before the `catch` block.
>
> Inside the catch block, if the message isn't equal to the expected one, throw the error right away.
>
> This allows removing indirection of using the `passed` field.
I have updated the test to be more robust and check for all functions calls now.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26522#discussion_r2299849096
PR Review Comment: https://git.openjdk.org/jdk/pull/26522#discussion_r2299849842
More information about the client-libs-dev
mailing list