Hi Yongtao,
Did you re-get the process instance by using executionService.findProcessInstanceById()? The process instance won't synchronize data from database automaticly, Once we modify the process instance, as variable or signaling, we need re-get process instance.
Hope this may be help.
Cheers.