public class MyClass {
public void methodInvocationSynchronizedExpr() {
synchronized (getClass()) { // Noncompliant [[sc=19;ec=29]] {{Synchronize on the static class name instead.}}
}
}
public void memberSelectSynchronizedExpr() {
synchronized (this.getClass()) { // Noncompliant [[sc=19;ec=34]] {{Synchronize on the static class name instead.}}
}
}
}
public final class FinalClassIsCompliant {
public void doSomethingSynchronized() {
synchronized (this.getClass()) { // Compliant
}
}
class MemberSelect {
public void memberSelectOnUnknownSymbol() {
A a = new A();
synchronized (a.getClass()) { // Compliant
}
}
}
class Coverage {
public void unrelatedSynchronizedExpr() {
Object monitor;
synchronized (monitor) { // Compliant
}
}
}
}