Esempio

public class ClassA {
private Lock l;
public void methodA() {
synchronized (l) {
//...
}
}

}
Soluzione
Utilizzare invece lock() e unlock()

public class ClassA {
private Lock l;
public void methodA() {
l.lock()
//...
l.unlock()
}

}