Can java.util.concurrent.lock.Lock detect deadlocks caused by two threads acquiring the same locks in a different order