Reports array fields that are declared volatile. Such declarations may be confusing because accessing the array itself follows the rules for volatile fields, but accessing the array's contents does not.

Example:


  class Data {
    private volatile int[] idx = new int[0];
  }

If such volatile access is needed for array contents, consider using java.util.concurrent.atomic classes instead:


  class Data {
    private final AtomicIntegerArray idx = new AtomicIntegerArray(new int[0]);
  }