[OpenJDK 2D-Dev] RFR: 8260695: The java.awt.color.ICC_Profile#getData/getData(int) are not thread safe [v2]
Alexander Zvegintsev
azvegint at openjdk.java.net
Sun Feb 7 22:07:48 UTC 2021
On Sat, 6 Feb 2021 07:25:08 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:
>> Both methods are implemented in a similar way.
>> 1. Requests the size of the profile/tag data
>> 2. Creates an array of the correct size
>> 3. Requests the data and copy it to the array
>>
>> If the data will be changed concurrently between steps 2. and 3. then we will get a mismatch between the array and copied data.
>>
>> In the fix, all steps above are merged to just one step - return the data when requested.
>
> Sergey Bylokhov has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:
>
> - Merge branch 'master' into JDK-8260695
> - cleanup
> - Merge branch 'JDK-8260695' of https://github.com/mrserb/jdk into JDK-8260695
> - Update LCMSProfile.java
> - Update LCMSProfile.java
> - Create MTGetData.java
> - Initial fix
Marked as reviewed by azvegint (Reviewer).
src/java.desktop/share/classes/sun/java2d/cmm/CMSManager.java line 103:
> 101: }
> 102:
> 103: public byte[] getProfileData(Profile p) {
Not sure if it is a big loss, but it looks like we are no longer printing profile and tag sizes under CMMTracer after the fix.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2330
More information about the 2d-dev
mailing list