RFR: 8358057: Update validation of ICC_Profile header data [v3]

Sergey Bylokhov serb at openjdk.org
Sat May 31 04:24:48 UTC 2025


On Sat, 31 May 2025 04:21:41 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

>> The [next PR](https://github.com/openjdk/jdk/pull/23044) introduces several new methods to the ICC_Profile class:
>> -  getProfileClass(byte[])
>> -  getColorSpaceType(byte[])
>> -  getPCSType(byte[])
>> -  checkRenderingIntent(byte[])
>> 
>> These new methods extract data directly from the provided byte array rather than relying on the profile instance. The first three methods essentially duplicate the existing ones (getProfileClass(), getColorSpaceType(), getPCSType()).
>> 
>> It is possible to update implementation:
>> - The existing methods getColorSpaceType() and getPCSType() could delegate to the new getColorSpaceType(byte[]) and getPCSType(byte[]) methods.
>> - The checkRenderingIntent(byte[]) method could be updated to report the actual invalid intent value when an error occurs
>> 
>> Tests:
>>  - Old ValidateICCHeaderData test is update to verify the new output of the checkRenderingIntent
>>  - New RenderingIntentStressTest test is added to check the next part of the icc_spec:
>> 
>>           * ICC spec: only the least-significant 16 bits encode the rendering
>>           * intent. The most significant 16 bits must be zero and can be ignored.
>>           * See https://www.color.org/ICC1v42_2006-05.pdf, section 7.2.15.
>> 
>> 
>> 
>> @honkar-jdk please take a look.
>> 
>> Note: There is currently an inconsistency in the usage of `getData(icSigHead)` vs `getData(cmmProfile(), icSigHead)` throughout the codebase. I plan to address this separately.
>
> Sergey Bylokhov has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update ValidateICCHeaderData.java

test/jdk/java/awt/color/ICC_Profile/ValidateICCHeaderData/ValidateICCHeaderData.java line 27:

> 25:  * @test
> 26:  * @bug 8337703 8347377 8358057
> 27:  * @summary To verify if ICC_Profile's setData() and getInstance() methods

I have added 8347377 where this test was added and 8358057 for the current issue. @honkar-jdk I cannot access the 8337703 is it a "closed bug" or it is a typo and we can drop that id?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/25519#discussion_r2117224965


More information about the client-libs-dev mailing list