Possible fixes:
If the field is never reassigned, add the missing final
modifier.
If the field needs to be mutable, create a separate lock by adding a private final field and synchronizing on it to guard all accesses.
If the field is lazily initialized, annotation it with
com.google.errorprone.annotations.concurrent.LazyInit
.
Suppress false positives by adding the suppression annotation @SuppressWarnings("SynchronizeOnNonFinalField")
to the enclosing element.