Inspectopedia
 
2024.3

Inconsistent 'AtomicFieldUpdater' declaration

Warning
New
Last modified: 03 December 2024

Reports issues with AtomicLongFieldUpdater, AtomicIntegerFieldUpdater, or AtomicReferenceFieldUpdater fields (the java.util.concurrent.atomic package).

The reported issues are identical to the runtime problems that can happen with atomic field updaters: specified field not found, specified field not accessible, specified field has a wrong type, and so on.

Examples:

  • class A {
      private static volatile int value = 0;
      private static final AtomicIntegerFieldUpdater updater =
      AtomicIntegerFieldUpdater.newUpdater((A.class), "value"); // warning: Field 'value' has 'static' modifier
    }
  • class B {
      private static final AtomicIntegerFieldUpdater updater =
        AtomicIntegerFieldUpdater.newUpdater(B.class, "value"); // warning: No field named 'value' found in class 'B'
    }