Inspectopedia Help

Non-atomic operation on 'volatile' field

Reports non-atomic operations on volatile fields.

An example of a non-atomic operation is updating the field using the increment operator. As the operation involves read and write, and other modifications may happen in between, data may become corrupted. The operation can be made atomic by surrounding it with a synchronized block or using one of the classes from the java.util.concurrent.atomic package.

Example:

private volatile int v = 1; void foo() { v = 2 * v; }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023