Как заблокировать с помощью ReentrantLock?

Я ожидал бы, что следующий тест напечатает только «был заблокирован» один раз. НО, следовательно, печатает строку.

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");
            }
        }
    }
}

Насколько я понял,tryLock заблокируетReentrantLock если возможно (т.е. если еще не заблокирован). Но, очевидно, это не так.

Как я могу установить такую ​​блокировку безопасным?