Pattern: Volatile array field
Issue: -
Volatile array fields are unsafe because the contents of the array are not treated as volatile. Changing the entire array reference is visible to other threads, but changing an array element is not.
Example of violations:
class SomeClass {
private volatile Object[] field1 = value()
volatile field2 = value as Object[]
volatile field3 = (Object[])foo
}