I couldn't find any place where any locking exception is explicitly caught. Is there any reason to fail early? For example, in the main controller, I put the check if the component needs building inside of the lock, so any thread that gets into the block won't do unnecessary work.