Actually, I thnk the LeaderLatch already synchronized on it's setLeadership method. And it will call isLeader/notLeader with sameThreadExecutor by execute method. it seems to me this will lead to an immediately call upon these two method. So I am not sure why curator's API doc mentioned that the hasLeaderShip could change during these two methods call.

And, anyway, the is/notLeader() should be called in sequence, So I think by just return here and give the last one a real update chance is probably enough.