* clientContext change state can use locker