doInvoke