I recently checked the jucCopyOnWriteArrayList implementation in OpenJDK sources and found that the lock variable defined inside the class is updated with the following statement
final ReentrantLock lock = this.lock;
inside all methods requiring this variable. Any specific reason for such a reevaluation of a variable (which may conceal a global variable). You cannot directly use the "lock" field of an object.
source
share