this is correct way of achieving the wait state with intermediate catch event. So it will remain in the catch event until it's signaled but the control will be returned from the startProcess method with ProcessInstance as a result. Then you can either check the state of that process instance or get it once again from ksession by using getProcessInstance method to ensure it's still there.
Thanks for the heads up.
I wonder if ksession.signalEvent() blocks invoking process as ksession.startProcess() does ?
If ksession.signalEvent() doesn't block invoking process, how can I wait until the signaled process complete ?