public String getCaseInstance(String containerId, String caseId, boolean withData, boolean withRoles, boolean withMilestones, boolean withStages, String marshallingType) { verifyContainerId(containerId, caseId); CaseInstance actualCaseInstance = caseService.getCaseInstance(caseId, withData, withRoles, withMilestones, withStages); org.kie.server.api.model.cases.CaseInstance caseInstance = ConvertUtils.transformCaseInstance(actualCaseInstance); if (actualCaseInstance.getStatus().equals(ProcessInstance.STATE_ACTIVE)) { if (withData) { caseInstance.setCaseFile(CaseFile.builder().data(actualCaseInstance.getCaseFile().getData()).build()); } if (withMilestones) { caseInstance.setMilestones(ConvertUtils.transformMilestones(actualCaseInstance.getCaseMilestones())); } if (withStages) { caseInstance.setStages(ConvertUtils.transformStages(actualCaseInstance.getCaseStages())); } if (withRoles) { caseInstance.setRoleAssignments(ConvertUtils.transformRoleAssignment(actualCaseInstance.getCaseRoles())); } } logger.debug("About to marshal case instance with id '{}' {}", caseId, caseInstance); return marshallerHelper.marshal(containerId, marshallingType, caseInstance, new ByCaseIdContainerLocator(caseId)); }