RFR: 8339561: The test/jdk/java/awt/Paint/ListRepaint.java may fail after JDK-8327401 [v5]

Sergey Bylokhov serb at openjdk.org
Tue Mar 4 16:56:22 UTC 2025


On Mon, 16 Sep 2024 11:38:52 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> test/jdk/java/awt/List/KeyEventsTest/KeyEventsTest.java line 53:
>> 
>>> 51: 
>>> 52: public class KeyEventsTest {
>>> 53:     private volatile TestState currentState;
>> 
>> I'd rather not declare it a `volatile`. It could give a false impression of being thread-safe but it is not. The `volatile` modifier has a meaning only when it's written and read subsequently. If the reference doesn't change, it has no effect on the visibility of the internal object state.
>> 
>> The value is assigned to `currentState` while holding a lock `LOCK`.
>> 
>> At the same time, `currentState.setAction(true)` is called without any synchronisation and adding `volatile` won't make the change of the state thread-safe.
>
> Submitted [JDK-8340196](https://bugs.openjdk.org/browse/JDK-8340196): _j.a/List/KeyEventsTest/KeyEventsTest: TestState currentState is not thread-safe_.

I think as of now it should be good enough, why do you think volatile will not help here?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20861#discussion_r1979853674


More information about the client-libs-dev mailing list