Reports the synchronized statements where the lock expression is a reference to a non-final field.

Such statements are unlikely to have useful semantics, as different threads may acquire different locks even when operating on the same object.

Example:

  private Object o;
  public void foo() {
    synchronized (o) // synchronization on a non-final field
    { }
  }