Ejemplo

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

}
Solución
Utilice lock() y unlock() en su lugar

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

}