Comportamiento de sincronización reenviado con sentencias sincronizad
Tengo dos métodos en una clase java que tienen un bloque de código que se sincroniza con el mismo objeto. Entiendo que en el esquema de sincronización JAVA los bloqueos adquiridos por un hilo son reentrantes. Con esto, ¿puedo decir con seguridad que el siguiente código no causará ningún problema en todos los casos?
public class Someclass
{
private static final Object LCK_OBJ = new Object();
//.....
publc void method1()
{
//some code....
synchronized(LCK_OBJ)
{
//some sychronized code.
method2(..);
}
//some more code....
}
protected static final void method2(..)
{
Someclass ref = null;
//some code which gets different other references of SomeClass in a loop....
ref.method3(..);
}
publc void method3()
{
//some code....
synchronized(LCK_OBJ)
{
//some sychronized code.
}
//some more code....
}
}//end of class