public void update(String containerId, Number taskId, String userId, String payload, String marshallerType) {
containerId = context.getContainerId(containerId, new ByTaskIdContainerLocator(taskId.longValue()));
userId = getUser(userId);
logger.debug("About to unmarshal task instances from payload: '{}'", payload);
TaskInstance updatedTask = marshallerHelper.unmarshal(containerId, payload, marshallerType, TaskInstance.class);
logger.debug("About to update task with id '{}' as user '{}' with data {}", taskId, userId, updatedTask);
UserTaskInstanceDesc task = new UserTaskInstanceDesc(taskId.longValue(), updatedTask.getName(), updatedTask.getDescription(), updatedTask.getPriority(), updatedTask.getExpirationDate(), updatedTask.getFormName());
userTaskService.updateTask(containerId, taskId.longValue(), userId, task, updatedTask.getInputData(), updatedTask.getOutputData());
}