[OpenJDK 2D-Dev] RFR: 8262915: java.awt.color.ColorSpace.getName() is not thread-safe
Sergey Bylokhov
serb at openjdk.java.net
Wed Mar 3 06:08:06 UTC 2021
On Wed, 3 Mar 2021 03:46:59 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:
> The java.awt.color.ColorSpace.getName() method does not use any kind of synchronization to properly initialize and use the static cache for the color components names.
src/java.desktop/share/classes/java/awt/color/ColorSpace.java line 115:
> 113: * Lazy-initialized names of components in the color space.
> 114: */
> 115: private transient volatile String [] compName;
The volatile keyword is the only one necessary to fix this bug, everything else is a cleanup.
src/java.desktop/share/classes/java/awt/color/ColorSpace.java line 454:
> 452: * Returns the name of the component given the component index.
> 453: *
> 454: * @param component the component index
All other methods use the "component" as a name of the component index.
src/java.desktop/share/classes/java/awt/color/ColorSpace.java line 459:
> 457: rangeCheck(idx);
> 458: if (compName == null) {
> 459: switch (type) {
the "switch statement" is replaced by the "switch expression"
-------------
PR: https://git.openjdk.java.net/jdk/pull/2801
More information about the 2d-dev
mailing list