¿Cómo bloquear con ReentrantLock?

Esperaría que la siguiente prueba solo imprima "ha sido bloqueado" una vez. PERO en consecuencia imprime la línea.

public class LocKTest {
    @Test
    public void testLock() {
        Lock lock = new ReentrantLock();
        while (true) {
            if (lock.tryLock()) {
                //lock.lock(); same result if I include an explicit lock here
                System.out.println("has been locked");
            }
        }
    }
}

Por lo que yo entendí,tryLock bloqueará elReentrantLock si es posible (es decir, si aún no está bloqueado). Pero obviamente este no es el caso.

¿Cómo puedo configurar un bloqueo de hilo seguro?