public void callCaseInstanceStateChangeCallbacks(CommandContext commandContext, ProcessInstance processInstance, String oldState, String newState) { if (processInstance.getCallbackId() != null && processInstance.getCallbackType() != null) { Map<String, List<RuntimeInstanceStateChangeCallback>> caseInstanceCallbacks = CommandContextUtil .getProcessEngineConfiguration(commandContext).getProcessInstanceStateChangedCallbacks(); if (caseInstanceCallbacks != null && caseInstanceCallbacks.containsKey(processInstance.getCallbackType())) { for (RuntimeInstanceStateChangeCallback caseInstanceCallback : caseInstanceCallbacks.get(processInstance.getCallbackType())) { caseInstanceCallback.stateChanged(new CallbackData(processInstance.getCallbackId(), processInstance.getCallbackType(), processInstance.getId(), oldState, newState)); } } } }