public boolean canEnter(ThreadInfo th) { if (isSynchronized()) { ElementInfo ei = getBlockedObject(th, true); // <?> pcm - the other way round would be intuitive return ei.canLock(th); } return true; }