this method looks like it is called often.  would it be better to make executor volatile and update it in a synchronized block on null?